summaryrefslogtreecommitdiff
path: root/mozilla-1158076-2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-1158076-2.patch')
-rw-r--r--mozilla-1158076-2.patch100
1 files changed, 100 insertions, 0 deletions
diff --git a/mozilla-1158076-2.patch b/mozilla-1158076-2.patch
new file mode 100644
index 0000000..2999b1f
--- /dev/null
+++ b/mozilla-1158076-2.patch
@@ -0,0 +1,100 @@
+diff -up firefox-53.0/widget/gtk/nsLookAndFeel.cpp.1158076-2 firefox-53.0/widget/gtk/nsLookAndFeel.cpp
+--- firefox-53.0/widget/gtk/nsLookAndFeel.cpp.1158076-2 2017-04-18 13:09:01.756315856 +0200
++++ firefox-53.0/widget/gtk/nsLookAndFeel.cpp 2017-04-18 13:10:10.615069083 +0200
+@@ -49,9 +49,9 @@ nsLookAndFeel::nsLookAndFeel()
+ mStyle(nullptr),
+ #endif
+ mDefaultFontCached(false), mButtonFontCached(false),
+- mFieldFontCached(false), mMenuFontCached(false)
++ mFieldFontCached(false), mMenuFontCached(false),
++ mInitialized(false)
+ {
+- Init();
+ }
+
+ nsLookAndFeel::~nsLookAndFeel()
+@@ -223,6 +223,8 @@ GetBorderColors(GtkStyleContext* aContex
+ nsresult
+ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
+ {
++ EnsureInit();
++
+ #if (MOZ_WIDGET_GTK == 3)
+ GdkRGBA gdk_color;
+ #endif
+@@ -674,6 +676,11 @@ nsLookAndFeel::GetIntImpl(IntID aID, int
+ return res;
+ res = NS_OK;
+
++ // We use delayed initialization by EnsureInit() here
++ // to make sure mozilla::Preferences is available (Bug 115807).
++ // eIntID_UseAccessibilityTheme is requested before user preferences
++ // are read, and so EnsureInit(), which depends on preference values,
++ // is deliberately delayed until required.
+ switch (aID) {
+ case eIntID_CaretBlinkTime:
+ {
+@@ -836,6 +843,7 @@ nsLookAndFeel::GetIntImpl(IntID aID, int
+ aResult = NS_STYLE_TEXT_DECORATION_STYLE_WAVY;
+ break;
+ case eIntID_MenuBarDrag:
++ EnsureInit();
+ aResult = sMenuSupportsDrag;
+ break;
+ case eIntID_ScrollbarButtonAutoRepeatBehavior:
+@@ -876,6 +884,7 @@ nsLookAndFeel::GetFloatImpl(FloatID aID,
+ aResult = 1.0f;
+ break;
+ case eFloatID_CaretAspectRatio:
++ EnsureInit();
+ aResult = sCaretRatio;
+ break;
+ default:
+@@ -1056,11 +1065,15 @@ nsLookAndFeel::GetFontImpl(FontID aID, n
+ }
+
+ void
+-nsLookAndFeel::Init()
++nsLookAndFeel::EnsureInit()
+ {
+ GdkColor colorValue;
+ GdkColor *colorValuePtr;
+
++ if (mInitialized)
++ return;
++ mInitialized = true;
++
+ #if (MOZ_WIDGET_GTK == 2)
+ NS_ASSERTION(!mStyle, "already initialized");
+ // GtkInvisibles come with a refcount that is not floating
+@@ -1451,6 +1464,7 @@ nsLookAndFeel::Init()
+ char16_t
+ nsLookAndFeel::GetPasswordCharacterImpl()
+ {
++ EnsureInit();
+ return sInvisibleCharacter;
+ }
+
+@@ -1469,7 +1483,7 @@ nsLookAndFeel::RefreshImpl()
+ mStyle = nullptr;
+ #endif
+
+- Init();
++ mInitialized = false;
+ }
+
+ bool
+diff -up firefox-53.0/widget/gtk/nsLookAndFeel.h.1158076-2 firefox-53.0/widget/gtk/nsLookAndFeel.h
+--- firefox-53.0/widget/gtk/nsLookAndFeel.h.1158076-2 2017-04-11 06:15:20.000000000 +0200
++++ firefox-53.0/widget/gtk/nsLookAndFeel.h 2017-04-18 13:09:01.759315845 +0200
+@@ -81,8 +81,9 @@ protected:
+ char16_t sInvisibleCharacter;
+ float sCaretRatio;
+ bool sMenuSupportsDrag;
++ bool mInitialized;
+
+- void Init();
++ void EnsureInit();
+ };
+
+ #endif
bgstack15