[gtkhtml/gnome-3-12] Bug 732499 - Use named colors from themes



commit cd65674dd01a779ed5087bf368bff9b9f9ef641c
Author: Milan Crha <mcrha redhat com>
Date:   Tue Jul 1 11:27:42 2014 +0200

    Bug 732499 - Use named colors from themes

 gtkhtml/htmlcolorset.c |   35 +++++++++++++++++------------------
 1 files changed, 17 insertions(+), 18 deletions(-)
---
diff --git a/gtkhtml/htmlcolorset.c b/gtkhtml/htmlcolorset.c
index d41b2c0..e52f859 100644
--- a/gtkhtml/htmlcolorset.c
+++ b/gtkhtml/htmlcolorset.c
@@ -198,32 +198,32 @@ html_colorset_set_style (HTMLColorSet *s,
                if (s->color[HTML ## t ## Color]) html_color_unref (s->color[HTML ## t ## Color]);      \
                s->color[HTML ## t ## Color] = html_color_new_from_gdk_color (&gc);                     \
        }
-#define SET_COLOR_FUNC(t,st,func)                                                                      \
+#define SET_COLOR_STYLE(t,nm,flbk)                                                                     \
        if (!s->changed[HTML ## t ## Color]) {                                                          \
                GdkRGBA color_rgba;                                                                     \
                                                                                                        \
-               func (style_context, st, &color_rgba);                                                  \
+               if (!gtk_style_context_lookup_color (style_context, nm, &color_rgba))                   \
+                       gdk_rgba_parse (&color_rgba, flbk);                                             \
                                                                                                        \
                SET_GCOLOR (t, color_rgba);                                                             \
        }
 
-#define SET_COLOR_BG(t,st) SET_COLOR_FUNC (t, st, gtk_style_context_get_background_color)
-#define SET_COLOR_FG(t,st) SET_COLOR_FUNC (t, st, gtk_style_context_get_color)
-
        GdkRGBA color;
+       gboolean backdrop;
        GtkStyleContext *style_context = gtk_widget_get_style_context (w);
+       GtkStateFlags state_flags;
+
+       state_flags = gtk_widget_get_state_flags (w);
+       backdrop = (state_flags & GTK_STATE_FLAG_BACKDROP) != 0;
+
+       SET_COLOR_STYLE (Bg,   backdrop ? "theme_unfocused_base_color" : "theme_base_color",   "#ffffff");
+       SET_COLOR_STYLE (Text, backdrop ? "theme_unfocused_text_color" : "theme_text_color", "#000000");
+
+       SET_COLOR_STYLE (Highlight,       backdrop ? "theme_unfocused_selected_bg_color" : 
"theme_selected_bg_color", "#7f7fff");
+       SET_COLOR_STYLE (HighlightText,   backdrop ? "theme_unfocused_selected_fg_color" : 
"theme_selected_fg_color", "#000000");
+       SET_COLOR_STYLE (HighlightNF,     backdrop ? "theme_unfocused_selected_bg_color" : 
"theme_selected_bg_color", "#afafff");
+       SET_COLOR_STYLE (HighlightTextNF, backdrop ? "theme_unfocused_selected_fg_color" : 
"theme_selected_fg_color", "#000000");
 
-       /* have text background and foreground colors same as GtkEntry */
-       gtk_style_context_save (style_context);
-       gtk_style_context_add_class (style_context, GTK_STYLE_CLASS_ENTRY);
-       SET_COLOR_BG (Bg,              GTK_STATE_FLAG_NORMAL);
-       SET_COLOR_FG (Text,            GTK_STATE_FLAG_NORMAL);
-       gtk_style_context_restore (style_context);
-
-       SET_COLOR_BG (Highlight,       GTK_STATE_FLAG_SELECTED);
-       SET_COLOR_FG (HighlightText,   GTK_STATE_FLAG_SELECTED);
-       SET_COLOR_BG (HighlightNF,     GTK_STATE_FLAG_ACTIVE);
-       SET_COLOR_FG (HighlightTextNF, GTK_STATE_FLAG_ACTIVE);
        get_prop_color (w, "link_color", "#0000ff", FALSE, &color);
        SET_GCOLOR (Link, color);
        get_prop_color (w, "alink_color", "#0000ff", FALSE, &color);
@@ -235,8 +235,7 @@ html_colorset_set_style (HTMLColorSet *s,
        get_prop_color (w, "cite_color", NULL, TRUE, &color);
        SET_GCOLOR (Cite, color);
 
-#undef SET_COLOR_FG
-#undef SET_COLOR_BG
+#undef SET_COLOR_STYLE
 #undef SET_COLOR_FUNC
 #undef SET_GCOLOR
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]