summaryrefslogtreecommitdiff
path: root/mozilla-1073117-color.patch
diff options
context:
space:
mode:
authorMartin Stransky <stransky@anakreon.cz>2014-12-08 10:06:21 +0100
committerMartin Stransky <stransky@anakreon.cz>2014-12-08 10:06:21 +0100
commita7cca11adb34355a78886e15d706bb07615b3ad2 (patch)
tree2edad82ac4a158c9551f85a2bafb57f7d510d2fe /mozilla-1073117-color.patch
parentFixed dict patch (diff)
downloadlibrewolf-fedora-ff-a7cca11adb34355a78886e15d706bb07615b3ad2.tar.gz
librewolf-fedora-ff-a7cca11adb34355a78886e15d706bb07615b3ad2.tar.bz2
librewolf-fedora-ff-a7cca11adb34355a78886e15d706bb07615b3ad2.zip
Gtk3 flash plugin fix (rhbz#1171457), Gtk3 theme fixes
Diffstat (limited to 'mozilla-1073117-color.patch')
-rw-r--r--mozilla-1073117-color.patch278
1 files changed, 278 insertions, 0 deletions
diff --git a/mozilla-1073117-color.patch b/mozilla-1073117-color.patch
new file mode 100644
index 0000000..b3dee3a
--- /dev/null
+++ b/mozilla-1073117-color.patch
@@ -0,0 +1,278 @@
+# HG changeset patch
+# Parent 18188c19a3c3ec9cd4474de5bd1f5558ec750a36
+# User Martin Stransky <stransky@redhat.com>
+Bug 1073117 - [gtk3] Use GTK_STYLE_CLASS_VIEW style for selected text rendering. r=?karlt
+It also merges some duplicated colors and adds GTK_STATE_FLAG_FOCUSED for selected text.
+
+
+diff --git a/widget/gtk/nsLookAndFeel.cpp b/widget/gtk/nsLookAndFeel.cpp
+--- a/widget/gtk/nsLookAndFeel.cpp
++++ b/widget/gtk/nsLookAndFeel.cpp
+@@ -33,32 +33,30 @@ using mozilla::LookAndFeel;
+ (int)((c).blue*255), (int)((c).alpha*255)))
+
+ nsLookAndFeel::nsLookAndFeel()
+ : nsXPLookAndFeel(),
+ #if (MOZ_WIDGET_GTK == 2)
+ mStyle(nullptr),
+ #else
+ mBackgroundStyle(nullptr),
+- mViewStyle(nullptr),
+ mButtonStyle(nullptr),
+ #endif
+ mDefaultFontCached(false), mButtonFontCached(false),
+ mFieldFontCached(false), mMenuFontCached(false)
+ {
+ Init();
+ }
+
+ nsLookAndFeel::~nsLookAndFeel()
+ {
+ #if (MOZ_WIDGET_GTK == 2)
+ g_object_unref(mStyle);
+ #else
+ g_object_unref(mBackgroundStyle);
+- g_object_unref(mViewStyle);
+ g_object_unref(mButtonStyle);
+ #endif
+ }
+
+ nsresult
+ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
+ {
+ #if (MOZ_WIDGET_GTK == 3)
+@@ -109,23 +107,29 @@ nsLookAndFeel::NativeGetColor(ColorID aI
+ case eColorID__moz_dialogtext:
+ aColor = sMozWindowText;
+ break;
+ case eColorID_WidgetSelectBackground:
+ case eColorID_TextSelectBackground:
+ case eColorID_IMESelectedRawTextBackground:
+ case eColorID_IMESelectedConvertedTextBackground:
+ case eColorID__moz_dragtargetzone:
+- aColor = sMozWindowSelectedBackground;
++ case eColorID__moz_cellhighlight:
++ case eColorID__moz_html_cellhighlight:
++ case eColorID_highlight: // preference selected item,
++ aColor = sTextSelectedBackground;
+ break;
+ case eColorID_WidgetSelectForeground:
+ case eColorID_TextSelectForeground:
+ case eColorID_IMESelectedRawTextForeground:
+ case eColorID_IMESelectedConvertedTextForeground:
+- aColor = sMozWindowSelectedText;
++ case eColorID_highlighttext:
++ case eColorID__moz_cellhighlighttext:
++ case eColorID__moz_html_cellhighlighttext:
++ aColor = sTextSelectedText;
+ break;
+ #endif
+ case eColorID_Widget3DHighlight:
+ aColor = NS_RGB(0xa0,0xa0,0xa0);
+ break;
+ case eColorID_Widget3DShadow:
+ aColor = NS_RGB(0x40,0x40,0x40);
+ break;
+@@ -233,29 +237,16 @@ nsLookAndFeel::NativeGetColor(ColorID aI
+ aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
+ break;
+ case eColorID_graytext: // disabled text in windows, menus, etc.
+ case eColorID_inactivecaptiontext: // text in inactive window caption
+ gtk_style_context_get_color(mBackgroundStyle,
+ GTK_STATE_FLAG_INSENSITIVE, &gdk_color);
+ aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
+ break;
+- case eColorID_highlight: // preference selected item,
+- // background of selected item
+- gtk_style_context_get_background_color(mViewStyle,
+- GTK_STATE_FLAG_SELECTED,
+- &gdk_color);
+- aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
+- break;
+- case eColorID_highlighttext:
+- // text of selected item
+- gtk_style_context_get_color(mViewStyle,
+- GTK_STATE_FLAG_SELECTED, &gdk_color);
+- aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
+- break;
+ case eColorID_inactivecaption:
+ // inactive window caption
+ gtk_style_context_get_background_color(mBackgroundStyle,
+ GTK_STATE_FLAG_INSENSITIVE,
+ &gdk_color);
+ aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
+ break;
+ #endif
+@@ -388,29 +379,16 @@ nsLookAndFeel::NativeGetColor(ColorID aI
+ gtk_style_context_get_background_color(mButtonStyle,
+ GTK_STATE_FLAG_PRELIGHT,
+ &gdk_color);
+ aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
+ break;
+ case eColorID__moz_buttonhovertext:
+ aColor = sButtonHoverText;
+ break;
+- case eColorID__moz_cellhighlight:
+- case eColorID__moz_html_cellhighlight:
+- gtk_style_context_get_background_color(mViewStyle,
+- GTK_STATE_FLAG_SELECTED,
+- &gdk_color);
+- aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
+- break;
+- case eColorID__moz_cellhighlighttext:
+- case eColorID__moz_html_cellhighlighttext:
+- gtk_style_context_get_color(mViewStyle,
+- GTK_STATE_FLAG_SELECTED, &gdk_color);
+- aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
+- break;
+ #endif
+ case eColorID__moz_menuhover:
+ aColor = sMenuHover;
+ break;
+ case eColorID__moz_menuhovertext:
+ aColor = sMenuHoverText;
+ break;
+ case eColorID__moz_oddtreerow:
+@@ -962,60 +940,66 @@ nsLookAndFeel::Init()
+ }
+
+ g_object_unref(menu);
+ #else
+ GdkRGBA color;
+ GtkStyleContext *style;
+
+ // Gtk manages a screen's CSS in the settings object so we
+- // ask Gtk to create it explicitly. Otherwise we may end up
++ // ask Gtk to create it explicitly. Otherwise we may end up
+ // with wrong color theme, see Bug 972382
+ (void)gtk_settings_get_for_screen(gdk_screen_get_default());
+
+ GtkWidgetPath *path = gtk_widget_path_new();
+ gtk_widget_path_append_type(path, GTK_TYPE_WINDOW);
+
+ mBackgroundStyle = create_context(path);
+ gtk_style_context_add_class(mBackgroundStyle, GTK_STYLE_CLASS_BACKGROUND);
+
+- mViewStyle = create_context(path);
+- gtk_style_context_add_class(mViewStyle, GTK_STYLE_CLASS_VIEW);
+-
+ mButtonStyle = create_context(path);
+ gtk_style_context_add_class(mButtonStyle, GTK_STYLE_CLASS_BUTTON);
+
+ // Scrollbar colors
+ style = create_context(path);
+ gtk_style_context_add_class(style, GTK_STYLE_CLASS_SCROLLBAR);
+ gtk_style_context_add_class(style, GTK_STYLE_CLASS_TROUGH);
+ gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
+ sMozScrollbar = GDK_RGBA_TO_NS_RGBA(color);
+ g_object_unref(style);
+
+ // Text colors
+- gtk_style_context_get_background_color(mViewStyle, GTK_STATE_FLAG_NORMAL, &color);
++ style = create_context(path);
++ gtk_style_context_add_class(style, GTK_STYLE_CLASS_VIEW);
++ gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
+ sMozFieldBackground = GDK_RGBA_TO_NS_RGBA(color);
+- gtk_style_context_get_color(mViewStyle, GTK_STATE_FLAG_NORMAL, &color);
++ gtk_style_context_get_color(style, GTK_STATE_FLAG_NORMAL, &color);
+ sMozFieldText = GDK_RGBA_TO_NS_RGBA(color);
+
++ // Selected text and background
++ gtk_style_context_get_background_color(style,
++ static_cast<GtkStateFlags>(GTK_STATE_FLAG_FOCUSED|GTK_STATE_FLAG_SELECTED),
++ &color);
++ sTextSelectedBackground = GDK_RGBA_TO_NS_RGBA(color);
++ gtk_style_context_get_color(style,
++ static_cast<GtkStateFlags>(GTK_STATE_FLAG_FOCUSED|GTK_STATE_FLAG_SELECTED),
++ &color);
++ sTextSelectedText = GDK_RGBA_TO_NS_RGBA(color);
++ g_object_unref(style);
++
+ // Window colors
+ style = create_context(path);
+ gtk_style_context_save(style);
+ gtk_style_context_add_class(style, GTK_STYLE_CLASS_BACKGROUND);
+ gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
+ sMozWindowBackground = GDK_RGBA_TO_NS_RGBA(color);
++
++ // Text colors
+ gtk_style_context_get_color(style, GTK_STATE_FLAG_NORMAL, &color);
+ sMozWindowText = GDK_RGBA_TO_NS_RGBA(color);
+-
+- // Selected text and background
+- gtk_style_context_get_background_color(style, GTK_STATE_FLAG_SELECTED, &color);
+- sMozWindowSelectedBackground = GDK_RGBA_TO_NS_RGBA(color);
+- gtk_style_context_get_color(style, GTK_STATE_FLAG_SELECTED, &color);
+- sMozWindowSelectedText = GDK_RGBA_TO_NS_RGBA(color);
+ gtk_style_context_restore(style);
+
+ // tooltip foreground and background
+ gtk_style_context_add_class(style, GTK_STYLE_CLASS_TOOLTIP);
+ gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
+ sInfoBackground = GDK_RGBA_TO_NS_RGBA(color);
+ gtk_style_context_get_color(style, GTK_STATE_FLAG_NORMAL, &color);
+ sInfoText = GDK_RGBA_TO_NS_RGBA(color);
+@@ -1251,21 +1235,19 @@ nsLookAndFeel::RefreshImpl()
+ mFieldFontCached = false;
+ mMenuFontCached = false;
+
+ #if (MOZ_WIDGET_GTK == 2)
+ g_object_unref(mStyle);
+ mStyle = nullptr;
+ #else
+ g_object_unref(mBackgroundStyle);
+- g_object_unref(mViewStyle);
+ g_object_unref(mButtonStyle);
+
+ mBackgroundStyle = nullptr;
+- mViewStyle = nullptr;
+ mButtonStyle = nullptr;
+ #endif
+
+ Init();
+ }
+
+ bool
+ nsLookAndFeel::GetEchoPasswordImpl() {
+diff --git a/widget/gtk/nsLookAndFeel.h b/widget/gtk/nsLookAndFeel.h
+--- a/widget/gtk/nsLookAndFeel.h
++++ b/widget/gtk/nsLookAndFeel.h
+@@ -30,17 +30,16 @@ public:
+ virtual char16_t GetPasswordCharacterImpl();
+ virtual bool GetEchoPasswordImpl();
+
+ protected:
+ #if (MOZ_WIDGET_GTK == 2)
+ struct _GtkStyle *mStyle;
+ #else
+ struct _GtkStyleContext *mBackgroundStyle;
+- struct _GtkStyleContext *mViewStyle;
+ struct _GtkStyleContext *mButtonStyle;
+ #endif
+
+ // Cached fonts
+ bool mDefaultFontCached;
+ bool mButtonFontCached;
+ bool mFieldFontCached;
+ bool mMenuFontCached;
+@@ -70,18 +69,18 @@ protected:
+ nscolor sOddCellBackground;
+ nscolor sNativeHyperLinkText;
+ nscolor sComboBoxText;
+ nscolor sComboBoxBackground;
+ nscolor sMozFieldText;
+ nscolor sMozFieldBackground;
+ nscolor sMozWindowText;
+ nscolor sMozWindowBackground;
+- nscolor sMozWindowSelectedText;
+- nscolor sMozWindowSelectedBackground;
++ nscolor sTextSelectedText;
++ nscolor sTextSelectedBackground;
+ nscolor sMozScrollbar;
+ char16_t sInvisibleCharacter;
+ float sCaretRatio;
+ bool sMenuSupportsDrag;
+
+ void Init();
+ };
+
bgstack15