From 1009c88186c9473aed3ff4dbbb6f851254b5bf74 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 13 Jan 2016 16:17:44 -0500 Subject: [PATCH] Make -gtk-icontheme() use -gtk-icon-palette This makes it possible to recolor themed icons with -gtk-icon-palette, regardless whether they are loaded by the theme or the application. --- gtk/gtkcssimageicontheme.c | 7 +++++-- gtk/gtkcssimageiconthemeprivate.h | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gtk/gtkcssimageicontheme.c b/gtk/gtkcssimageicontheme.c index 73c8a628a1..4451e1904a 100644 --- a/gtk/gtkcssimageicontheme.c +++ b/gtk/gtkcssimageicontheme.c @@ -27,6 +27,7 @@ #include "gtkcssrgbavalueprivate.h" #include "gtksettingsprivate.h" #include "gtkstyleproviderprivate.h" +#include "gtkiconthemeprivate.h" G_DEFINE_TYPE (GtkCssImageIconTheme, _gtk_css_image_icon_theme, GTK_TYPE_CSS_IMAGE) @@ -66,7 +67,9 @@ gtk_css_image_icon_theme_draw (GtkCssImage *image, pixbuf = gtk_icon_info_load_symbolic (icon_info, &icon_theme->color, - NULL, NULL, NULL, + &icon_theme->success, + &icon_theme->warning, + &icon_theme->error, NULL, &error); if (pixbuf == NULL) @@ -139,7 +142,7 @@ gtk_css_image_icon_theme_compute (GtkCssImage *image, copy->name = g_strdup (icon_theme->name); copy->icon_theme = gtk_css_icon_theme_value_get_icon_theme (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_ICON_THEME)); copy->scale = _gtk_style_provider_private_get_scale (provider); - copy->color = *_gtk_css_rgba_value_get_rgba (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_COLOR)); + gtk_icon_theme_lookup_symbolic_colors (style, ©->color, ©->success, ©->warning, ©->error); return GTK_CSS_IMAGE (copy); } diff --git a/gtk/gtkcssimageiconthemeprivate.h b/gtk/gtkcssimageiconthemeprivate.h index 5922146ea8..07d1f8e4ff 100644 --- a/gtk/gtkcssimageiconthemeprivate.h +++ b/gtk/gtkcssimageiconthemeprivate.h @@ -41,6 +41,9 @@ struct _GtkCssImageIconTheme GtkIconTheme *icon_theme; GdkRGBA color; + GdkRGBA success; + GdkRGBA warning; + GdkRGBA error; gint scale; char *name; };