summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlberts Muktupāvels <alberts.muktupavels@gmail.com>2015-04-29 14:58:38 +0300
committerAlberts Muktupāvels <alberts.muktupavels@gmail.com>2015-04-29 14:58:38 +0300
commit7bbc59c7af98df1072ed6bda0a397884cc85f44a (patch)
tree267d383bcb1c2a41a4f5b92b257dfeed6de35420
parent35241cbb60c1ff6af67569541d906100d20491b6 (diff)
downloadmetacity-7bbc59c7af98df1072ed6bda0a397884cc85f44a.tar.gz
theme: fix missing background color
-rw-r--r--src/ui/theme.c32
1 files changed, 29 insertions, 3 deletions
diff --git a/src/ui/theme.c b/src/ui/theme.c
index 85320806..36b1cf7d 100644
--- a/src/ui/theme.c
+++ b/src/ui/theme.c
@@ -1683,9 +1683,9 @@ meta_color_spec_new_gtk (MetaGtkColorComponent component,
}
static void
-get_background_color (GtkStyleContext *context,
- GtkStateFlags state,
- GdkRGBA *color)
+get_background_color_real (GtkStyleContext *context,
+ GtkStateFlags state,
+ GdkRGBA *color)
{
GdkRGBA *c;
@@ -1701,6 +1701,32 @@ get_background_color (GtkStyleContext *context,
gdk_rgba_free (c);
}
+static void
+get_background_color (GtkStyleContext *context,
+ GtkStateFlags state,
+ GdkRGBA *color)
+{
+ GdkRGBA empty = { 0.0, 0.0, 0.0, 0.0 };
+ GdkRGBA rgba;
+
+ get_background_color_real (context, state, &rgba);
+
+ if (gdk_rgba_equal (&rgba, &empty))
+ {
+ GtkWidget *toplevel;
+ GtkStyleContext *tmp;
+
+ toplevel = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ tmp = gtk_widget_get_style_context (toplevel);
+
+ get_background_color_real (tmp, state, &rgba);
+
+ gtk_widget_destroy (toplevel);
+ }
+
+ *color = rgba;
+}
+
/* Based on set_color() in gtkstyle.c */
#define LIGHTNESS_MULT 1.3
#define DARKNESS_MULT 0.7