aboutsummaryrefslogtreecommitdiff
path: root/www/firefox/files/patch-bug1101582
blob: d3abf8b623785bfc13e842a66c2a41c8f5b4bf3f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
commit 8142810
Author: Martin Stransky <stransky@redhat.com>
Date:   Thu Nov 27 04:08:00 2014 +0100

    Bug 1101582 - [GTK3] - Use window background color for ThreeDFace,ButtonFace. r=karlt
    This fixes missing borders on non-natively-styled textareas.
---
 widget/gtk/nsLookAndFeel.cpp | 21 ++++++++++-----------
 widget/gtk/nsLookAndFeel.h   |  2 +-
 2 files changed, 11 insertions(+), 12 deletions(-)

diff --git widget/gtk/nsLookAndFeel.cpp widget/gtk/nsLookAndFeel.cpp
index 93066b4..3562cf2 100644
--- widget/gtk/nsLookAndFeel.cpp
+++ widget/gtk/nsLookAndFeel.cpp
@@ -284,10 +284,17 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
 #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:
@@ -302,11 +309,6 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
         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:
@@ -1141,7 +1143,7 @@ nsLookAndFeel::Init()
 
     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 =
@@ -1189,12 +1191,9 @@ nsLookAndFeel::Init()
     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
diff --git widget/gtk/nsLookAndFeel.h widget/gtk/nsLookAndFeel.h
index be15179..aabbca6 100644
--- widget/gtk/nsLookAndFeel.h
+++ widget/gtk/nsLookAndFeel.h
@@ -64,7 +64,7 @@ protected:
     nscolor sMenuHoverText;
     nscolor sButtonText;
     nscolor sButtonHoverText;
-    nscolor sFrameBackground;
+    nscolor sButtonBackground;
     nscolor sFrameOuterLightBorder;
     nscolor sFrameInnerDarkBorder;
     nscolor sOddCellBackground;