diff options
Diffstat (limited to 'unity-menubar.patch')
-rw-r--r-- | unity-menubar.patch | 423 |
1 files changed, 193 insertions, 230 deletions
diff --git a/unity-menubar.patch b/unity-menubar.patch index 19a2725d7ff4..e4e7019745a5 100644 --- a/unity-menubar.patch +++ b/unity-menubar.patch @@ -1,15 +1,6 @@ -# HG changeset patch -# User Chris Coulson <chrisccoulson@ubuntu.com> -# Date 1493156926 -3600 -# Tue Apr 25 22:48:46 2017 +0100 -# Node ID 1118c162780db83e59e47be621c5360099df1d46 -# Parent 3f0c8da53c5cb015933b10b52ded3f30432b378a -Add Unity menubar support - -Index: firefox-trunk-55.0~a1~hg20170510r357490/browser/base/content/browser-menubar.inc -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/browser/base/content/browser-menubar.inc -+++ firefox-trunk-55.0~a1~hg20170510r357490/browser/base/content/browser-menubar.inc +diff --git a/browser/base/content/browser-menubar.inc b/browser/base/content/browser-menubar.inc +--- a/browser/base/content/browser-menubar.inc ++++ b/browser/base/content/browser-menubar.inc @@ -5,7 +5,11 @@ <menubar id="main-menubar" @@ -22,11 +13,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/browser/base/content/browser-menu this.setAttribute('openedwithkey', event.target.parentNode.openedWithKey);" style="border:0px;padding:0px;margin:0px;-moz-appearance:none"> -Index: firefox-trunk-55.0~a1~hg20170510r357490/browser/base/content/browser.js -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/browser/base/content/browser.js -+++ firefox-trunk-55.0~a1~hg20170510r357490/browser/base/content/browser.js -@@ -5335,6 +5335,8 @@ +diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js +--- a/browser/base/content/browser.js ++++ b/browser/base/content/browser.js +@@ -5401,6 +5401,8 @@ function getTogglableToolbars() { let toolbarNodes = Array.slice(gNavToolbox.childNodes); toolbarNodes = toolbarNodes.concat(gNavToolbox.externalToolbars); toolbarNodes = toolbarNodes.filter(node => node.getAttribute("toolbarname")); @@ -35,10 +25,9 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/browser/base/content/browser.js return toolbarNodes; } -Index: firefox-trunk-55.0~a1~hg20170510r357490/browser/components/places/content/places.xul -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/browser/components/places/content/places.xul -+++ firefox-trunk-55.0~a1~hg20170510r357490/browser/components/places/content/places.xul +diff --git a/browser/components/places/content/places.xul b/browser/components/places/content/places.xul +--- a/browser/components/places/content/places.xul ++++ b/browser/components/places/content/places.xul @@ -155,7 +155,7 @@ <toolbarbutton type="menu" class="tabbable" onpopupshowing="document.getElementById('placeContent').focus()" @@ -48,11 +37,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/browser/components/places/content <menu accesskey="&organize.accesskey;" class="menu-iconic" #endif id="organizeButton" label="&organize.label;" -Index: firefox-trunk-55.0~a1~hg20170510r357490/layout/build/moz.build -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/layout/build/moz.build -+++ firefox-trunk-55.0~a1~hg20170510r357490/layout/build/moz.build -@@ -74,6 +74,10 @@ +diff --git a/layout/build/moz.build b/layout/build/moz.build +--- a/layout/build/moz.build ++++ b/layout/build/moz.build +@@ -74,6 +74,10 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'an '/dom/system', '/dom/system/android', ] @@ -63,11 +51,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/layout/build/moz.build if CONFIG['MOZ_WEBSPEECH']: LOCAL_INCLUDES += [ -Index: firefox-trunk-55.0~a1~hg20170510r357490/layout/build/nsLayoutStatics.cpp -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/layout/build/nsLayoutStatics.cpp -+++ firefox-trunk-55.0~a1~hg20170510r357490/layout/build/nsLayoutStatics.cpp -@@ -129,6 +129,10 @@ +diff --git a/layout/build/nsLayoutStatics.cpp b/layout/build/nsLayoutStatics.cpp +--- a/layout/build/nsLayoutStatics.cpp ++++ b/layout/build/nsLayoutStatics.cpp +@@ -126,6 +126,10 @@ #include "mozilla/dom/ipc/IPCBlobInputStreamStorage.h" #include "mozilla/dom/U2FTokenManager.h" @@ -78,7 +65,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/layout/build/nsLayoutStatics.cpp using namespace mozilla; using namespace mozilla::net; using namespace mozilla::dom; -@@ -161,6 +165,9 @@ +@@ -158,6 +162,9 @@ nsLayoutStatics::Initialize() nsTextServicesDocument::RegisterAtoms(); nsHTMLTags::RegisterAtoms(); nsRDFAtoms::RegisterAtoms(); @@ -88,11 +75,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/layout/build/nsLayoutStatics.cpp NS_SealStaticAtomTable(); -Index: firefox-trunk-55.0~a1~hg20170510r357490/modules/libpref/init/all.js -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/modules/libpref/init/all.js -+++ firefox-trunk-55.0~a1~hg20170510r357490/modules/libpref/init/all.js -@@ -214,6 +214,9 @@ +diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js +--- a/modules/libpref/init/all.js ++++ b/modules/libpref/init/all.js +@@ -242,6 +242,9 @@ pref("dom.script_loader.bytecode_cache.s pref("browser.sessionhistory.max_total_viewers", -1); pref("ui.use_native_colors", true); @@ -102,10 +88,9 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/modules/libpref/init/all.js pref("ui.click_hold_context_menus", false); // Duration of timeout of incremental search in menus (ms). 0 means infinite. pref("ui.menu.incremental_search.timeout", 1000); -Index: firefox-trunk-55.0~a1~hg20170510r357490/toolkit/content/widgets/popup.xml -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/toolkit/content/widgets/popup.xml -+++ firefox-trunk-55.0~a1~hg20170510r357490/toolkit/content/widgets/popup.xml +diff --git a/toolkit/content/widgets/popup.xml b/toolkit/content/widgets/popup.xml +--- a/toolkit/content/widgets/popup.xml ++++ b/toolkit/content/widgets/popup.xml @@ -27,8 +27,14 @@ </getter> </property> @@ -123,11 +108,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/toolkit/content/widgets/popup.xml <property name="triggerNode" readonly="true" onget="return this.popupBoxObject.triggerNode"/> -Index: firefox-trunk-55.0~a1~hg20170510r357490/toolkit/content/xul.css -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/toolkit/content/xul.css -+++ firefox-trunk-55.0~a1~hg20170510r357490/toolkit/content/xul.css -@@ -324,6 +324,18 @@ +diff --git a/toolkit/content/xul.css b/toolkit/content/xul.css +--- a/toolkit/content/xul.css ++++ b/toolkit/content/xul.css +@@ -319,6 +319,18 @@ toolbar[type="menubar"][autohide="true"] } %endif @@ -146,11 +130,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/toolkit/content/xul.css toolbarseparator { -moz-binding: url("chrome://global/content/bindings/toolbar.xml#toolbardecoration"); } -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/moz.build -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/widget/gtk/moz.build -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/moz.build -@@ -27,10 +27,18 @@ +diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build +--- a/widget/gtk/moz.build ++++ b/widget/gtk/moz.build +@@ -33,10 +33,18 @@ UNIFIED_SOURCES += [ 'nsAppShell.cpp', 'nsBidiKeyboard.cpp', 'nsColorPicker.cpp', @@ -169,7 +152,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/moz.build 'nsNativeThemeGTK.cpp', 'nsSound.cpp', 'nsToolkit.cpp', -@@ -42,6 +50,8 @@ +@@ -48,6 +56,8 @@ UNIFIED_SOURCES += [ ] SOURCES += [ @@ -178,7 +161,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/moz.build 'nsWindow.cpp', # conflicts with X11 headers ] -@@ -106,6 +116,7 @@ +@@ -112,6 +122,7 @@ FINAL_LIBRARY = 'xul' LOCAL_INCLUDES += [ '/layout/generic', @@ -186,10 +169,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/moz.build '/layout/xul', '/other-licenses/atk-1.0', '/widget', -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsDbusmenu.cpp -=================================================================== +diff --git a/widget/gtk/nsDbusmenu.cpp b/widget/gtk/nsDbusmenu.cpp +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsDbusmenu.cpp ++++ b/widget/gtk/nsDbusmenu.cpp @@ -0,0 +1,63 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -254,10 +237,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsDbusmenu.cpp + + return NS_OK; +} -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsDbusmenu.h -=================================================================== +diff --git a/widget/gtk/nsDbusmenu.h b/widget/gtk/nsDbusmenu.h +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsDbusmenu.h ++++ b/widget/gtk/nsDbusmenu.h @@ -0,0 +1,101 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -360,11 +343,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsDbusmenu.h +#define dbusmenu_menuitem_property_set_shortcut nsDbusmenuFunctions::s_dbusmenu_menuitem_property_set_shortcut + +#endif /* __nsDbusmenu_h__ */ -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp -=================================================================== +diff --git a/widget/gtk/nsMenu.cpp b/widget/gtk/nsMenu.cpp +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp -@@ -0,0 +1,842 @@ ++++ b/widget/gtk/nsMenu.cpp +@@ -0,0 +1,858 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: + */ @@ -376,9 +359,14 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp + +#include "mozilla/dom/Element.h" +#include "mozilla/Assertions.h" ++#include "mozilla/EventDispatcher.h" ++#include "mozilla/GeckoStyleContext.h" +#include "mozilla/GuardObjects.h" +#include "mozilla/MouseEvents.h" +#include "mozilla/Move.h" ++#include "mozilla/ServoStyleContext.h" ++#include "mozilla/ServoStyleSet.h" ++#include "mozilla/ServoTypes.h" +#include "mozilla/StyleSetHandleInlines.h" +#include "nsAutoPtr.h" +#include "nsBindingManager.h" @@ -395,6 +383,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp +#include "nsITimer.h" +#include "nsString.h" +#include "nsStyleContext.h" ++#include "nsStyleContextInlines.h" +#include "nsStyleSet.h" +#include "nsStyleStruct.h" +#include "nsThreadUtils.h" @@ -417,6 +406,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp + nsIContent *aContainer, + nsIContent *aChild, + nsIContent *aPrevSibling) : ++ Runnable("nsMenuContentInsertedEvent"), + mWeakMenu(aMenu), + mContainer(aContainer), + mChild(aChild), @@ -448,6 +438,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp + nsMenuContentRemovedEvent(nsMenu *aMenu, + nsIContent *aContainer, + nsIContent *aChild) : ++ Runnable("nsMenuContentRemovedEvent"), + mWeakMenu(aMenu), + mContainer(aContainer), + mChild(aChild) { } @@ -478,7 +469,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp + } + + WidgetMouseEvent event(true, aMsg, nullptr, WidgetMouseEvent::eReal); -+ aTarget->DispatchDOMEvent(&event, nullptr, nullptr, nullptr); ++ EventDispatcher::Dispatch(aTarget, nullptr, &event); +} + +static void @@ -490,9 +481,16 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp + return; + } + -+ RefPtr<nsStyleContext> sc = -+ shell->StyleSet()->AsGecko()->ResolveStyleFor(aContent->AsElement(), -+ nullptr); ++ RefPtr<nsStyleContext> sc; ++ if (shell->StyleSet()->IsGecko()) { ++ sc = shell->StyleSet()->AsGecko()->ResolveStyleFor(aContent->AsElement(), ++ nullptr); ++ } else { ++ sc = shell->StyleSet()->AsServo()->ResolveStyleFor(aContent->AsElement(), ++ nullptr, ++ LazyComputeBehavior::Allow); ++ } ++ + if (!sc) { + return; + } @@ -1167,10 +1165,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp + return; + } + -+ if (NS_FAILED(mOpenDelayTimer->InitWithFuncCallback(DoOpenCallback, -+ this, -+ 100, -+ nsITimer::TYPE_ONE_SHOT))) { ++ if (NS_FAILED(mOpenDelayTimer->InitWithNamedFuncCallback(DoOpenCallback, ++ this, ++ 100, ++ nsITimer::TYPE_ONE_SHOT, ++ "nsMenu::DoOpenCallback"))) { + mOpenDelayTimer = nullptr; + } +} @@ -1207,10 +1206,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp + ContentNode()->UnsetAttr(kNameSpaceID_None, nsGkAtoms::open, true); +} + -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.h -=================================================================== +diff --git a/widget/gtk/nsMenu.h b/widget/gtk/nsMenu.h +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.h ++++ b/widget/gtk/nsMenu.h @@ -0,0 +1,124 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -1336,11 +1335,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.h +}; + +#endif /* __nsMenu_h__ */ -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.cpp -=================================================================== +diff --git a/widget/gtk/nsMenuBar.cpp b/widget/gtk/nsMenuBar.cpp +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.cpp -@@ -0,0 +1,572 @@ ++++ b/widget/gtk/nsMenuBar.cpp +@@ -0,0 +1,576 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: + */ @@ -1398,6 +1397,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.cpp + nsMenuBarContentInsertedEvent(nsMenuBar *aMenuBar, + nsIContent *aChild, + nsIContent *aPrevSibling) : ++ Runnable("nsMenuBarContentInsertedEvent"), + mWeakMenuBar(aMenuBar), + mChild(aChild), + mPrevSibling(aPrevSibling) { } @@ -1425,6 +1425,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.cpp +public: + nsMenuBarContentRemovedEvent(nsMenuBar *aMenuBar, + nsIContent *aChild) : ++ Runnable("nsMenuBarContentRemovedEvent"), + mWeakMenuBar(aMenuBar), + mChild(aChild) { } + @@ -1853,12 +1854,14 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.cpp + return static_cast<uint32_t>(GDK_WINDOW_XID(gtk_widget_get_window(mTopLevel))); +} + -+nsAdoptingCString ++nsCString +nsMenuBar::ObjectPath() const +{ + gchar *tmp; + g_object_get(mServer, DBUSMENU_SERVER_PROP_DBUS_OBJECT, &tmp, NULL); -+ nsAdoptingCString result(tmp); ++ ++ nsCString result; ++ result.Adopt(tmp); + + return result; +} @@ -1913,10 +1916,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.cpp + DocListener()->Stop(); + DisconnectDocumentEventListeners(); +} -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.h -=================================================================== +diff --git a/widget/gtk/nsMenuBar.h b/widget/gtk/nsMenuBar.h +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.h ++++ b/widget/gtk/nsMenuBar.h @@ -0,0 +1,107 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -1969,7 +1972,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.h + uint32_t WindowId() const; + + // Get the object path for this menubar -+ nsAdoptingCString ObjectPath() const; ++ nsCString ObjectPath() const; + + // Get the top-level GtkWindow handle + GtkWidget* TopLevelWindow() { return mTopLevel; } @@ -2025,10 +2028,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.h +}; + +#endif /* __nsMenuBar_h__ */ -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuContainer.cpp -=================================================================== +diff --git a/widget/gtk/nsMenuContainer.cpp b/widget/gtk/nsMenuContainer.cpp +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuContainer.cpp ++++ b/widget/gtk/nsMenuContainer.cpp @@ -0,0 +1,172 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -2202,10 +2205,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuContainer.cpp + + return aContent; +} -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuContainer.h -=================================================================== +diff --git a/widget/gtk/nsMenuContainer.h b/widget/gtk/nsMenuContainer.h +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuContainer.h ++++ b/widget/gtk/nsMenuContainer.h @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -2277,11 +2280,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuContainer.h +}; + +#endif /* __nsMenuContainer_h__ */ -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.cpp -=================================================================== +diff --git a/widget/gtk/nsMenuItem.cpp b/widget/gtk/nsMenuItem.cpp +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.cpp -@@ -0,0 +1,736 @@ ++++ b/widget/gtk/nsMenuItem.cpp +@@ -0,0 +1,737 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: + */ @@ -2591,6 +2594,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.cpp + } + + nsMenuItemUncheckSiblingsRunnable(nsMenuItem *aMenuItem) : ++ Runnable("nsMenuItemUncheckSiblingsRunnable"), + mMenuItem(aMenuItem) { }; + +private: @@ -2645,7 +2649,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.cpp + if (command) { + command->InitCommandEvent(NS_LITERAL_STRING("command"), + true, true, doc->GetInnerWindow(), 0, -+ false, false, false, false, nullptr); ++ false, false, false, false, nullptr, 0); + + event->SetTrusted(true); + bool dummy; @@ -3018,10 +3022,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.cpp +{ + return eType_MenuItem; +} -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.h -=================================================================== +diff --git a/widget/gtk/nsMenuItem.h b/widget/gtk/nsMenuItem.h +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.h ++++ b/widget/gtk/nsMenuItem.h @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -3104,11 +3108,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.h +}; + +#endif /* __nsMenuItem_h__ */ -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.cpp -=================================================================== +diff --git a/widget/gtk/nsMenuObject.cpp b/widget/gtk/nsMenuObject.cpp +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.cpp -@@ -0,0 +1,665 @@ ++++ b/widget/gtk/nsMenuObject.cpp +@@ -0,0 +1,666 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: + */ @@ -3340,7 +3344,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.cpp + + if (imageRequest) { + mImageRect = imageRect; -+ imageRequest->Clone(this, getter_AddRefs(mImageRequest)); ++ imageRequest->Clone(this, nullptr, getter_AddRefs(mImageRequest)); + } else { + mImageRect.SetEmpty(); + nsCOMPtr<nsILoadGroup> loadGroup = doc->GetDocumentLoadGroup(); @@ -3393,10 +3397,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.cpp +{ + static char16_t sBuf[4] = { 0, 0, 0, 0 }; + if (!sBuf[0]) { -+ nsAdoptingString ellipsis = Preferences::GetLocalizedString("intl.ellipsis"); ++ nsString ellipsis; ++ Preferences::GetLocalizedString("intl.ellipsis", ellipsis); + if (!ellipsis.IsEmpty()) { + uint32_t l = ellipsis.Length(); -+ const nsAdoptingString::char_type *c = ellipsis.BeginReading(); ++ const nsString::char_type *c = ellipsis.BeginReading(); + uint32_t i = 0; + while (i < 3 && i < l) { + sBuf[i++] = *(c++); @@ -3774,10 +3779,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.cpp + weak = weak->mPrev; + } +} -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.h -=================================================================== +diff --git a/widget/gtk/nsMenuObject.h b/widget/gtk/nsMenuObject.h +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.h ++++ b/widget/gtk/nsMenuObject.h @@ -0,0 +1,170 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -3949,10 +3954,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.h +}; + +#endif /* __nsMenuObject_h__ */ -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuSeparator.cpp -=================================================================== +diff --git a/widget/gtk/nsMenuSeparator.cpp b/widget/gtk/nsMenuSeparator.cpp +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuSeparator.cpp ++++ b/widget/gtk/nsMenuSeparator.cpp @@ -0,0 +1,85 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -4039,10 +4044,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuSeparator.cpp +{ + return eType_MenuItem; +} -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuSeparator.h -=================================================================== +diff --git a/widget/gtk/nsMenuSeparator.h b/widget/gtk/nsMenuSeparator.h +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuSeparator.h ++++ b/widget/gtk/nsMenuSeparator.h @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -4081,10 +4086,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuSeparator.h +}; + +#endif /* __nsMenuSeparator_h__ */ -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtomList.h -=================================================================== +diff --git a/widget/gtk/nsNativeMenuAtomList.h b/widget/gtk/nsNativeMenuAtomList.h +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtomList.h ++++ b/widget/gtk/nsNativeMenuAtomList.h @@ -0,0 +1,12 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -4098,10 +4103,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtomList.h +WIDGET_ATOM2(_moz_nativemenupopupstate, "_moz-nativemenupopupstate") +WIDGET_ATOM(openedwithkey) +WIDGET_ATOM(shellshowingmenubar) -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtoms.cpp -=================================================================== +diff --git a/widget/gtk/nsNativeMenuAtoms.cpp b/widget/gtk/nsNativeMenuAtoms.cpp +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtoms.cpp ++++ b/widget/gtk/nsNativeMenuAtoms.cpp @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -4142,10 +4147,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtoms.cpp +{ + NS_RegisterStaticAtoms(gAtoms); +} -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtoms.h -=================================================================== +diff --git a/widget/gtk/nsNativeMenuAtoms.h b/widget/gtk/nsNativeMenuAtoms.h +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtoms.h ++++ b/widget/gtk/nsNativeMenuAtoms.h @@ -0,0 +1,27 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -4174,10 +4179,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtoms.h +}; + +#endif /* __nsNativeMenuAtoms_h__ */ -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuDocListener.cpp -=================================================================== +diff --git a/widget/gtk/nsNativeMenuDocListener.cpp b/widget/gtk/nsNativeMenuDocListener.cpp +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuDocListener.cpp ++++ b/widget/gtk/nsNativeMenuDocListener.cpp @@ -0,0 +1,350 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -4529,10 +4534,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuDocListene + CancelFlush(this); + mPendingMutations.Clear(); +} -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuDocListener.h -=================================================================== +diff --git a/widget/gtk/nsNativeMenuDocListener.h b/widget/gtk/nsNativeMenuDocListener.h +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuDocListener.h ++++ b/widget/gtk/nsNativeMenuDocListener.h @@ -0,0 +1,152 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: @@ -4686,11 +4691,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuDocListene +}; + +#endif /* __nsNativeMenuDocListener_h__ */ -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cpp -=================================================================== +diff --git a/widget/gtk/nsNativeMenuService.cpp b/widget/gtk/nsNativeMenuService.cpp +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cpp -@@ -0,0 +1,541 @@ ++++ b/widget/gtk/nsNativeMenuService.cpp +@@ -0,0 +1,508 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: + */ @@ -4701,18 +4706,15 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp +#include "mozilla/Assertions.h" +#include "mozilla/Move.h" +#include "mozilla/Preferences.h" -+#include "mozilla/Services.h" +#include "mozilla/UniquePtr.h" +#include "nsAutoPtr.h" +#include "nsCOMPtr.h" +#include "nsCRT.h" +#include "nsGtkUtils.h" +#include "nsIContent.h" -+#include "nsIObserverService.h" +#include "nsIWidget.h" +#include "nsServiceManagerUtils.h" +#include "nsWindow.h" -+#include "nsXPCOM.h" +#include "prlink.h" + +#include "nsDbusmenu.h" @@ -4729,7 +4731,6 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp +using namespace mozilla; + +nsNativeMenuService* nsNativeMenuService::sService = nullptr; -+bool nsNativeMenuService::sShutdown = false; + +extern PangoLayout* gPangoLayout; +extern nsNativeMenuDocListenerTArray* gPendingListeners; @@ -4822,7 +4823,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp + return NS_OK; +} + -+NS_IMPL_ISUPPORTS(nsNativeMenuService, nsINativeMenuService, nsIObserver) ++NS_IMPL_ISUPPORTS(nsNativeMenuService, nsINativeMenuService) + +nsNativeMenuService::nsNativeMenuService() : + mCreateProxyCancellable(nullptr), mDbusProxy(nullptr), mOnline(false) @@ -4862,6 +4863,9 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp + g_object_unref(gPangoLayout); + gPangoLayout = nullptr; + } ++ ++ MOZ_ASSERT(sService == this); ++ sService = nullptr; +} + +nsresult @@ -4906,23 +4910,17 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp + SetOnline(true); + } + -+ nsCOMPtr<nsIObserverService> os = services::GetObserverService(); -+ if (os) { -+ os->AddObserver(this, NS_XPCOM_SHUTDOWN_OBSERVER_ID, false); -+ } -+ + return NS_OK; +} + +/* static */ void +nsNativeMenuService::EnsureInitialized() +{ -+ if (!sService) { -+ nsCOMPtr<nsINativeMenuService> service = -+ do_GetService("@mozilla.org/widget/nativemenuservice;1"); ++ if (sService) { ++ return; + } -+ MOZ_ASSERT(sService != nullptr || sShutdown == true, -+ "Failed to create native menu service"); ++ nsCOMPtr<nsINativeMenuService> service = ++ do_GetService("@mozilla.org/widget/nativemenuservice;1"); +} + +void @@ -4964,7 +4962,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp + } + + uint32_t xid = aMenuBar->WindowId(); -+ nsAdoptingCString path = aMenuBar->ObjectPath(); ++ nsCString path = aMenuBar->ObjectPath(); + if (xid == 0 || path.IsEmpty()) { + NS_WARNING("Menubar has invalid XID or object path"); + return; @@ -5009,14 +5007,15 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp + + // We need this check because we can't assume that GDBus cancellation + // is reliable (see https://launchpad.net/bugs/953562) -+ if (sShutdown) { ++ nsNativeMenuService *self = nsNativeMenuService::GetSingleton(); ++ if (!self) { + if (proxy) { + g_object_unref(proxy); + } + return; + } + -+ nsNativeMenuService::GetSingleton()->OnProxyCreated(proxy); ++ self->OnProxyCreated(proxy); +} + +/* static */ void @@ -5044,12 +5043,12 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp + g_error_free(error); + } + -+ if (sShutdown) { ++ nsNativeMenuService *self = nsNativeMenuService::GetSingleton(); ++ if (!self) { + return; + } + -+ nsNativeMenuService::GetSingleton()->OnNativeMenuBarRegistered(menuBar, -+ success); ++ self->OnNativeMenuBarRegistered(menuBar, success); +} + +/* static */ gboolean @@ -5128,23 +5127,6 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp +} + +NS_IMETHODIMP -+nsNativeMenuService::Observe(nsISupports *aSubject, -+ const char *aTopic, -+ const char16_t *aData) -+{ -+ if (!nsCRT::strcmp(NS_XPCOM_SHUTDOWN_OBSERVER_ID, aTopic)) { -+ sShutdown = true; -+ nsCOMPtr<nsIObserverService> os = services::GetObserverService(); -+ if (os) { -+ os->RemoveObserver(sService, NS_XPCOM_SHUTDOWN_OBSERVER_ID); -+ } -+ NS_IF_RELEASE(sService); -+ } -+ -+ return NS_OK; -+} -+ -+NS_IMETHODIMP +nsNativeMenuService::CreateNativeMenuBar(nsIWidget *aParent, + nsIContent *aMenuBarNode) +{ @@ -5181,7 +5163,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp +} + +/* static */ already_AddRefed<nsNativeMenuService> -+nsNativeMenuService::GetInstance() ++nsNativeMenuService::GetInstanceForServiceManager() +{ + RefPtr<nsNativeMenuService> service(sService); + @@ -5189,23 +5171,13 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp + return service.forget(); + } + -+ MOZ_ASSERT(sShutdown == false, -+ "Attempted to access menubar service too late"); -+ -+ if (sShutdown) { -+ return nullptr; -+ } -+ -+ sService = new nsNativeMenuService(); -+ NS_ADDREF(sService); ++ service = new nsNativeMenuService(); + -+ if (NS_FAILED(sService->Init())) { -+ NS_RELEASE(sService); -+ sService = nullptr; ++ if (NS_FAILED(service->Init())) { + return nullptr; + } + -+ service = sService; ++ sService = service.get(); + return service.forget(); +} + @@ -5232,11 +5204,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp + g_object_unref(cancellable); + } +} -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.h -=================================================================== +diff --git a/widget/gtk/nsNativeMenuService.h b/widget/gtk/nsNativeMenuService.h +new file mode 100644 --- /dev/null -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.h -@@ -0,0 +1,87 @@ ++++ b/widget/gtk/nsNativeMenuService.h +@@ -0,0 +1,84 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: + */ @@ -5251,7 +5223,6 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.h +#include "nsCOMPtr.h" +#include "nsDataHashtable.h" +#include "nsINativeMenuService.h" -+#include "nsIObserver.h" +#include "nsTArray.h" + +#include <gdk/gdk.h> @@ -5269,17 +5240,15 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.h + * needs to. The menubar is responsible for notifying the service when the last + * reference to it is dropped. + */ -+class nsNativeMenuService final : public nsINativeMenuService, -+ public nsIObserver ++class nsNativeMenuService final : public nsINativeMenuService +{ +public: + NS_DECL_ISUPPORTS -+ NS_DECL_NSIOBSERVER + + NS_IMETHOD CreateNativeMenuBar(nsIWidget* aParent, nsIContent* aMenuBarNode) override; + + // Returns the singleton addref'd for the service manager -+ static already_AddRefed<nsNativeMenuService> GetInstance(); ++ static already_AddRefed<nsNativeMenuService> GetInstanceForServiceManager(); + + // Returns the singleton without increasing the reference count + static nsNativeMenuService* GetSingleton(); @@ -5324,11 +5293,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.h +}; + +#endif /* __nsNativeMenuService_h__ */ -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeThemeGTK.cpp -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/widget/gtk/nsNativeThemeGTK.cpp -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeThemeGTK.cpp -@@ -52,6 +52,7 @@ +diff --git a/widget/gtk/nsNativeThemeGTK.cpp b/widget/gtk/nsNativeThemeGTK.cpp +--- a/widget/gtk/nsNativeThemeGTK.cpp ++++ b/widget/gtk/nsNativeThemeGTK.cpp +@@ -51,6 +51,7 @@ using namespace mozilla; using namespace mozilla::gfx; @@ -5336,10 +5304,9 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeThemeGTK.cpp NS_IMPL_ISUPPORTS_INHERITED(nsNativeThemeGTK, nsNativeTheme, nsITheme, nsIObserver) -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWidgetFactory.cpp -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/widget/gtk/nsWidgetFactory.cpp -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWidgetFactory.cpp +diff --git a/widget/gtk/nsWidgetFactory.cpp b/widget/gtk/nsWidgetFactory.cpp +--- a/widget/gtk/nsWidgetFactory.cpp ++++ b/widget/gtk/nsWidgetFactory.cpp @@ -48,6 +48,8 @@ #include "GfxInfoX11.h" #endif @@ -5349,17 +5316,17 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWidgetFactory.cpp #include "nsNativeThemeGTK.h" #include "nsIComponentRegistrar.h" -@@ -124,6 +126,9 @@ +@@ -123,6 +125,9 @@ NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(GfxI } #endif +NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsNativeMenuService, -+ nsNativeMenuService::GetInstance) ++ nsNativeMenuService::GetInstanceForServiceManager) + #ifdef NS_PRINTING NS_GENERIC_FACTORY_CONSTRUCTOR(nsDeviceContextSpecGTK) NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrintOptionsGTK, Init) -@@ -226,6 +231,7 @@ +@@ -225,6 +230,7 @@ NS_DEFINE_NAMED_CID(NS_IMAGE_TO_PIXBUF_C NS_DEFINE_NAMED_CID(NS_IDLE_SERVICE_CID); NS_DEFINE_NAMED_CID(NS_GFXINFO_CID); #endif @@ -5367,7 +5334,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWidgetFactory.cpp static const mozilla::Module::CIDEntry kWidgetCIDs[] = { -@@ -261,6 +267,7 @@ +@@ -260,6 +266,7 @@ static const mozilla::Module::CIDEntry k { &kNS_IDLE_SERVICE_CID, false, nullptr, nsIdleServiceGTKConstructor }, { &kNS_GFXINFO_CID, false, nullptr, mozilla::widget::GfxInfoConstructor }, #endif @@ -5375,7 +5342,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWidgetFactory.cpp { nullptr } }; -@@ -298,6 +305,7 @@ +@@ -297,6 +304,7 @@ static const mozilla::Module::ContractID { "@mozilla.org/widget/idleservice;1", &kNS_IDLE_SERVICE_CID }, { "@mozilla.org/gfx/info;1", &kNS_GFXINFO_CID }, #endif @@ -5383,11 +5350,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWidgetFactory.cpp { nullptr } }; -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.cpp -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/widget/gtk/nsWindow.cpp -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.cpp -@@ -67,6 +67,7 @@ +diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp +--- a/widget/gtk/nsWindow.cpp ++++ b/widget/gtk/nsWindow.cpp +@@ -72,6 +72,7 @@ #include "mozilla/Assertions.h" #include "mozilla/Likely.h" @@ -5395,7 +5361,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.cpp #include "mozilla/Preferences.h" #include "nsIPrefService.h" #include "nsIGConfService.h" -@@ -5007,6 +5008,11 @@ +@@ -5092,6 +5093,11 @@ nsWindow::HideWindowChrome(bool aShouldH #endif /* MOZ_X11 */ } @@ -5407,10 +5373,9 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.cpp bool nsWindow::CheckForRollup(gdouble aMouseX, gdouble aMouseY, bool aIsWheel, bool aAlwaysRollup) -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.h -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/widget/gtk/nsWindow.h -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.h +diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h +--- a/widget/gtk/nsWindow.h ++++ b/widget/gtk/nsWindow.h @@ -35,6 +35,8 @@ #include "IMContextWrapper.h" @@ -5420,7 +5385,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.h #undef LOG #ifdef MOZ_LOGGING -@@ -161,6 +163,8 @@ +@@ -157,6 +159,8 @@ public: nsIScreen* aTargetScreen = nullptr) override; virtual void HideWindowChrome(bool aShouldHide) override; @@ -5429,7 +5394,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.h /** * GetLastUserInputTime returns a timestamp for the most recent user input * event. This is intended for pointer grab requests (including drags). -@@ -562,6 +566,8 @@ +@@ -561,6 +565,8 @@ private: RefPtr<mozilla::widget::IMContextWrapper> mIMContext; mozilla::UniquePtr<mozilla::CurrentX11TimeGetter> mCurrentTimeGetter; @@ -5437,12 +5402,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.h + mozilla::UniquePtr<nsMenuBar> mMenuBar; }; - class nsChildWindow : public nsWindow { -Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/moz.build -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/widget/moz.build -+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/moz.build -@@ -60,9 +60,9 @@ + #endif /* __nsWindow_h__ */ +diff --git a/widget/moz.build b/widget/moz.build +--- a/widget/moz.build ++++ b/widget/moz.build +@@ -63,9 +63,9 @@ elif toolkit == 'cocoa': 'nsISystemStatusBar.idl', 'nsITaskbarProgress.idl', ] @@ -5455,10 +5419,9 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/moz.build TEST_DIRS += ['tests'] -Index: firefox-trunk-55.0~a1~hg20170510r357490/xpfe/appshell/nsWebShellWindow.cpp -=================================================================== ---- firefox-trunk-55.0~a1~hg20170510r357490.orig/xpfe/appshell/nsWebShellWindow.cpp -+++ firefox-trunk-55.0~a1~hg20170510r357490/xpfe/appshell/nsWebShellWindow.cpp +diff --git a/xpfe/appshell/nsWebShellWindow.cpp b/xpfe/appshell/nsWebShellWindow.cpp +--- a/xpfe/appshell/nsWebShellWindow.cpp ++++ b/xpfe/appshell/nsWebShellWindow.cpp @@ -74,7 +74,7 @@ #include "gfxPlatform.h" |