diff options
-rw-r--r-- | D147266.diff | 31 | ||||
-rw-r--r-- | D147267.diff | 19 | ||||
-rw-r--r-- | firefox.spec | 9 |
3 files changed, 58 insertions, 1 deletions
diff --git a/D147266.diff b/D147266.diff new file mode 100644 index 0000000..5f8a580 --- /dev/null +++ b/D147266.diff @@ -0,0 +1,31 @@ +diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp +--- a/widget/gtk/nsWindow.cpp ++++ b/widget/gtk/nsWindow.cpp +@@ -1430,20 +1430,20 @@ + } + #endif + if (popup->mPopupContextMenu && !popup->mPopupAnchored) { + LOG(" popup [%p] is first context menu", popup); + popup->mRelativePopupPosition = popup->mPopupPosition; +- } else if (popup->mPopupAnchored) { +- LOG(" popup [%p] is anchored", popup); +- if (!popup->mPopupMatchesLayout) { +- NS_WARNING("Anchored popup does not match layout!"); +- } +- popup->mRelativePopupPosition = popup->mPopupPosition; + } else if (popup->mWaylandPopupPrev->mWaylandToplevel == nullptr) { + LOG(" popup [%p] has toplevel as parent", popup); + popup->mRelativePopupPosition = popup->mPopupPosition; + } else { ++ if (popup->mPopupAnchored) { ++ LOG(" popup [%p] is anchored", popup); ++ if (!popup->mPopupMatchesLayout) { ++ NS_WARNING("Anchored popup does not match layout!"); ++ } ++ } + GdkPoint parent = WaylandGetParentPosition(); + + LOG(" popup [%p] uses transformed coordinates\n", popup); + LOG(" parent position [%d, %d]\n", parent.x, parent.y); + LOG(" popup position [%d, %d]\n", popup->mPopupPosition.x, + diff --git a/D147267.diff b/D147267.diff new file mode 100644 index 0000000..1191b85 --- /dev/null +++ b/D147267.diff @@ -0,0 +1,19 @@ +diff -up firefox-100.0.2/widget/gtk/nsWindow.cpp.D147267 firefox-100.0.2/widget/gtk/nsWindow.cpp +--- firefox-100.0.2/widget/gtk/nsWindow.cpp.D147267 2022-05-25 11:46:48.291005415 +0200 ++++ firefox-100.0.2/widget/gtk/nsWindow.cpp 2022-05-25 11:50:11.447736538 +0200 +@@ -2359,11 +2359,12 @@ void nsWindow::WaylandPopupMove() { + LOG(" popup use move to rect %d\n", mPopupUseMoveToRect); + + if (!mPopupUseMoveToRect) { +- if (mNeedsShow && mPopupType != ePopupTypeTooltip) { ++ if (mPopupHint == ePopupTypeMenu) { + // Workaround for https://gitlab.gnome.org/GNOME/gtk/-/issues/4308 +- // Tooltips are created as subsurfaces with relative position. ++ // Tooltips/Utility popus are created as subsurfaces with relative position. ++ // Menu uses absolute positions. + LOG(" use gtk_window_move(%d, %d) for hidden widget\n", mPopupPosition.x, +- mPopupPosition.y); ++ mPopupPosition.y); + gtk_window_move(GTK_WINDOW(mShell), mPopupPosition.x, mPopupPosition.y); + } else { + LOG(" use gtk_window_move(%d, %d) for visible widget\n", diff --git a/firefox.spec b/firefox.spec index aa58a27..40f6e66 100644 --- a/firefox.spec +++ b/firefox.spec @@ -163,7 +163,7 @@ ExcludeArch: aarch64 Summary: Mozilla Firefox Web browser Name: firefox Version: 100.0.2 -Release: 1%{?pre_tag}%{?dist} +Release: 2%{?pre_tag}%{?dist} URL: https://www.mozilla.org/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz @@ -218,6 +218,8 @@ Patch61: firefox-glibc-dynstack.patch Patch62: build-python.patch Patch71: 0001-GLIBCXX-fix-for-GCC-12.patch Patch72: D142373.diff +Patch73: D147266.diff +Patch74: D147267.diff # Test patches # Generate without context by @@ -462,6 +464,8 @@ This package contains results of tests executed during build. %patch54 -p1 -b .1669639 %patch71 -p1 -b .0001-GLIBCXX-fix-for-GCC-12 %patch72 -p1 -b .D142373 +%patch73 -p1 -b .D147266 +%patch74 -p1 -b .D147267 # Test patches #%patch100 -p1 -b .firefox-tests-xpcshell @@ -1059,6 +1063,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #--------------------------------------------------------------------- %changelog +* Wed May 25 2022 Martin Stransky <stransky@redhat.com>- 100.0.2-2 +- Added fix for mzbz#1771104 + * Fri May 20 2022 Martin Stransky <stransky@redhat.com>- 100.0.2-1 - Updated to 100.0.2 |