firefox/mozilla-1101582.patch

123 lines
4.3 KiB
Diff
Raw Normal View History

# HG changeset patch
# Parent cef590a6f94681064fa954890bae6014db819158
# User Martin Stransky <stransky@redhat.com>
Bug 1101582 - [GTK3] - Use window background color for ThreeDFace,ButtonFace r=karlt
This fixes missing borders on non-natively-styled textareas.
diff --git a/widget/gtk/nsLookAndFeel.cpp b/widget/gtk/nsLookAndFeel.cpp
--- a/widget/gtk/nsLookAndFeel.cpp
+++ b/widget/gtk/nsLookAndFeel.cpp
@@ -279,39 +279,41 @@ nsLookAndFeel::NativeGetColor(ColorID aI
// scrollbar gray area
#if (MOZ_WIDGET_GTK == 2)
aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_ACTIVE]);
#else
aColor = sMozScrollbar;
#endif
break;
+ case eColorID_threedlightshadow:
+ // 3-D highlighted inner edge color
+ // always same as background in GTK code
case eColorID_threedface:
case eColorID_buttonface:
// 3-D face color
- aColor = sFrameBackground;
+#if (MOZ_WIDGET_GTK == 3)
+ aColor = sMozWindowBackground;
+#else
+ aColor = sButtonBackground;
+#endif
break;
case eColorID_buttontext:
// text on push buttons
aColor = sButtonText;
break;
case eColorID_buttonhighlight:
// 3-D highlighted edge color
case eColorID_threedhighlight:
// 3-D highlighted outer edge color
aColor = sFrameOuterLightBorder;
break;
- case eColorID_threedlightshadow:
- // 3-D highlighted inner edge color
- aColor = sFrameBackground; // always same as background in GTK code
- break;
-
case eColorID_buttonshadow:
// 3-D shadow edge color
case eColorID_threedshadow:
// 3-D shadow inner edge color
aColor = sFrameInnerDarkBorder;
break;
#if (MOZ_WIDGET_GTK == 2)
@@ -1136,17 +1138,17 @@ nsLookAndFeel::Init()
}
sOddCellBackground = GDK_COLOR_TO_NS_RGB(colorValue);
if (colorValuePtr)
gdk_color_free(colorValuePtr);
style = gtk_widget_get_style(button);
if (style) {
- sFrameBackground = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_NORMAL]);
+ sButtonBackground = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_NORMAL]);
sFrameOuterLightBorder =
GDK_COLOR_TO_NS_RGB(style->light[GTK_STATE_NORMAL]);
sFrameInnerDarkBorder =
GDK_COLOR_TO_NS_RGB(style->dark[GTK_STATE_NORMAL]);
}
#else
// Button text, background, border
style = gtk_widget_get_style_context(label);
@@ -1184,22 +1186,19 @@ nsLookAndFeel::Init()
gtk_style_context_add_region(style, GTK_STYLE_REGION_ROW, GTK_REGION_ODD);
gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
sOddCellBackground = GDK_RGBA_TO_NS_RGBA(color);
gtk_style_context_restore(style);
GtkWidget *frame = gtk_frame_new(nullptr);
gtk_container_add(GTK_CONTAINER(parent), frame);
- style = gtk_widget_get_style_context(frame);
- gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
- sFrameBackground = GDK_RGBA_TO_NS_RGBA(color);
-
// TODO GTK3 - update sFrameOuterLightBorder
// for GTK_BORDER_STYLE_INSET/OUTSET/GROVE/RIDGE border styles (Bug 978172).
+ style = gtk_widget_get_style_context(frame);
gtk_style_context_get_border_color(style, GTK_STATE_FLAG_NORMAL, &color);
sFrameInnerDarkBorder = sFrameOuterLightBorder = GDK_RGBA_TO_NS_RGBA(color);
#endif
// Some themes have a unified menu bar, and support window dragging on it
gboolean supports_menubar_drag = FALSE;
GParamSpec *param_spec =
gtk_widget_class_find_style_property(GTK_WIDGET_GET_CLASS(menuBar),
"window-dragging");
diff --git a/widget/gtk/nsLookAndFeel.h b/widget/gtk/nsLookAndFeel.h
--- a/widget/gtk/nsLookAndFeel.h
+++ b/widget/gtk/nsLookAndFeel.h
@@ -59,17 +59,17 @@ protected:
nscolor sMenuBackground;
nscolor sMenuBarText;
nscolor sMenuBarHoverText;
nscolor sMenuText;
nscolor sMenuHover;
nscolor sMenuHoverText;
nscolor sButtonText;
nscolor sButtonHoverText;
- nscolor sFrameBackground;
+ nscolor sButtonBackground;
nscolor sFrameOuterLightBorder;
nscolor sFrameInnerDarkBorder;
nscolor sOddCellBackground;
nscolor sNativeHyperLinkText;
nscolor sComboBoxText;
nscolor sComboBoxBackground;
nscolor sMozFieldText;
nscolor sMozFieldBackground;