diff options
Diffstat (limited to 'mozilla-1532643-popup.patch')
-rw-r--r-- | mozilla-1532643-popup.patch | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/mozilla-1532643-popup.patch b/mozilla-1532643-popup.patch deleted file mode 100644 index 3b870a2..0000000 --- a/mozilla-1532643-popup.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff -up firefox-67.0/layout/xul/moz.build.mozilla-1532643-popup firefox-67.0/layout/xul/moz.build ---- firefox-67.0/layout/xul/moz.build.mozilla-1532643-popup 2019-05-14 01:08:24.000000000 +0200 -+++ firefox-67.0/layout/xul/moz.build 2019-05-15 15:31:39.714299754 +0200 -@@ -88,3 +88,6 @@ LOCAL_INCLUDES += [ - - if CONFIG['CC_TYPE'] in ('clang', 'gcc'): - CXXFLAGS += ['-Wno-error=shadow'] -+ -+CFLAGS += CONFIG['TK_CFLAGS'] -+CXXFLAGS += CONFIG['TK_CFLAGS'] -diff -up firefox-67.0/layout/xul/nsMenuPopupFrame.cpp.mozilla-1532643-popup firefox-67.0/layout/xul/nsMenuPopupFrame.cpp ---- firefox-67.0/layout/xul/nsMenuPopupFrame.cpp.mozilla-1532643-popup 2019-05-14 01:08:24.000000000 +0200 -+++ firefox-67.0/layout/xul/nsMenuPopupFrame.cpp 2019-05-15 15:37:01.121215863 +0200 -@@ -55,6 +55,10 @@ - #include "mozilla/dom/KeyboardEvent.h" - #include "mozilla/dom/KeyboardEventBinding.h" - #include <algorithm> -+#ifdef MOZ_WAYLAND -+#include <gdk/gdk.h> -+#include <gdk/gdkx.h> -+#endif /* MOZ_WAYLAND */ - - using namespace mozilla; - using mozilla::dom::Document; -@@ -301,11 +305,29 @@ nsresult nsMenuPopupFrame::CreateWidgetF - !(mode == eTransparencyTransparent || tag == nsGkAtoms::menulist); - widgetData.mPopupLevel = PopupLevel(widgetData.mNoAutoHide); - -+ static bool waylandBackend = -+#ifdef MOZ_WAYLAND -+ !GDK_IS_X11_DISPLAY(gdk_display_get_default()); -+#else -+ false; -+#endif -+ - // panels which have a parent level need a parent widget. This allows them to - // always appear in front of the parent window but behind other windows that - // should be in front of it. - nsCOMPtr<nsIWidget> parentWidget; -- if (widgetData.mPopupLevel != ePopupLevelTop) { -+ if (waylandBackend) { -+ // On Wayland we always need to connect menu to its parent menu widget -+ // otherwise it's not shown. -+ nsMenuFrame* menuFrame = do_QueryFrame(GetParent()); -+ if (menuFrame) { -+ nsMenuParent* parentPopup = menuFrame->GetMenuParent(); -+ if (parentPopup && parentPopup->IsMenu()) { -+ parentWidget = -+ static_cast<nsMenuPopupFrame*>(parentPopup)->GetWidget(); -+ } -+ } -+ } else if (widgetData.mPopupLevel != ePopupLevelTop) { - nsCOMPtr<nsIDocShellTreeItem> dsti = PresContext()->GetDocShell(); - if (!dsti) return NS_ERROR_FAILURE; - -diff -up firefox-67.0/widget/gtk/nsWindow.cpp.mozilla-1532643-popup firefox-67.0/widget/gtk/nsWindow.cpp ---- firefox-67.0/widget/gtk/nsWindow.cpp.mozilla-1532643-popup 2019-05-15 15:31:39.712299764 +0200 -+++ firefox-67.0/widget/gtk/nsWindow.cpp 2019-05-15 15:31:39.716299744 +0200 -@@ -3527,11 +3527,7 @@ nsresult nsWindow::Create(nsIWidget *aPa - } else { - switch (aInitData->mPopupHint) { - case ePopupTypeMenu: -- // Use GDK_WINDOW_TYPE_HINT_UTILITY on Wayland which -- // guides Gtk to create the popup as subsurface -- // instead of xdg_shell popup (see Bug 1423598). -- gtkTypeHint = mIsX11Display ? GDK_WINDOW_TYPE_HINT_POPUP_MENU -- : GDK_WINDOW_TYPE_HINT_UTILITY; -+ gtkTypeHint = GDK_WINDOW_TYPE_HINT_POPUP_MENU; - break; - case ePopupTypeTooltip: - gtkTypeHint = GDK_WINDOW_TYPE_HINT_TOOLTIP; |