Added fix for mzbz#1771104

This commit is contained in:
Martin Stransky 2022-05-25 11:52:47 +02:00
parent 02b4146177
commit 972fcbe039
3 changed files with 58 additions and 1 deletions

31
D147266.diff Normal file
View File

@ -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,

19
D147267.diff Normal file
View File

@ -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",

View File

@ -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