Added fix for mozbz#1802327
This commit is contained in:
parent
1d86ce0d55
commit
6fa1c4438c
58
D163310.diff
Normal file
58
D163310.diff
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
||||||
|
--- a/widget/gtk/nsWindow.cpp
|
||||||
|
+++ b/widget/gtk/nsWindow.cpp
|
||||||
|
@@ -3029,11 +3029,11 @@
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void nsWindow::SetUserTimeAndStartupTokenForActivatedWindow() {
|
||||||
|
nsGTKToolkit* toolkit = nsGTKToolkit::GetToolkit();
|
||||||
|
- if (!toolkit) {
|
||||||
|
+ if (!toolkit || MOZ_UNLIKELY(mWindowType == eWindowType_invisible)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mWindowActivationTokenFromEnv = toolkit->GetStartupToken();
|
||||||
|
if (!mWindowActivationTokenFromEnv.IsEmpty()) {
|
||||||
|
@@ -6614,30 +6614,34 @@
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Set up usertime/startupID metadata for the created window.
|
||||||
|
- if (mWindowType != eWindowType_invisible) {
|
||||||
|
+ // On X11 we use gtk_window_set_startup_id() so we need to call it
|
||||||
|
+ // before show.
|
||||||
|
+ if (GdkIsX11Display()) {
|
||||||
|
SetUserTimeAndStartupTokenForActivatedWindow();
|
||||||
|
}
|
||||||
|
if (GdkIsWaylandDisplay()) {
|
||||||
|
if (IsWaylandPopup()) {
|
||||||
|
ShowWaylandPopupWindow();
|
||||||
|
} else {
|
||||||
|
ShowWaylandToplevelWindow();
|
||||||
|
}
|
||||||
|
+ } else {
|
||||||
|
+ LOG(" calling gtk_widget_show(mShell)\n");
|
||||||
|
+ gtk_widget_show(mShell);
|
||||||
|
+ }
|
||||||
|
+ if (GdkIsWaylandDisplay()) {
|
||||||
|
+ SetUserTimeAndStartupTokenForActivatedWindow();
|
||||||
|
#ifdef MOZ_WAYLAND
|
||||||
|
auto token = std::move(mWindowActivationTokenFromEnv);
|
||||||
|
if (!token.IsEmpty()) {
|
||||||
|
FocusWaylandWindow(token.get());
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
- } else {
|
||||||
|
- LOG(" calling gtk_widget_show(mShell)\n");
|
||||||
|
- gtk_widget_show(mShell);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
+ }
|
||||||
|
if (mHiddenPopupPositioned && IsPopup()) {
|
||||||
|
LOG(" re-position hidden popup window");
|
||||||
|
gtk_window_move(GTK_WINDOW(mShell), mPopupPosition.x, mPopupPosition.y);
|
||||||
|
mHiddenPopupPositioned = false;
|
||||||
|
}
|
||||||
|
|
@ -230,6 +230,7 @@ Patch55: firefox-testing.patch
|
|||||||
Patch61: firefox-glibc-dynstack.patch
|
Patch61: firefox-glibc-dynstack.patch
|
||||||
Patch71: 0001-GLIBCXX-fix-for-GCC-12.patch
|
Patch71: 0001-GLIBCXX-fix-for-GCC-12.patch
|
||||||
Patch78: firefox-i686-build.patch
|
Patch78: firefox-i686-build.patch
|
||||||
|
Patch79: D163310.diff
|
||||||
|
|
||||||
# Test patches
|
# Test patches
|
||||||
# Generate without context by
|
# Generate without context by
|
||||||
@ -506,6 +507,7 @@ This package contains results of tests executed during build.
|
|||||||
%patch54 -p1 -b .1669639
|
%patch54 -p1 -b .1669639
|
||||||
%patch71 -p1 -b .0001-GLIBCXX-fix-for-GCC-12
|
%patch71 -p1 -b .0001-GLIBCXX-fix-for-GCC-12
|
||||||
%patch78 -p1 -b .firefox-i686
|
%patch78 -p1 -b .firefox-i686
|
||||||
|
%patch79 -p1 -b .D163310
|
||||||
|
|
||||||
# Test patches
|
# Test patches
|
||||||
#%patch100 -p1 -b .firefox-tests-xpcshell
|
#%patch100 -p1 -b .firefox-tests-xpcshell
|
||||||
|
Loading…
Reference in New Issue
Block a user