summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2015-03-18 15:22:09 +0100
committerBenjamin Otte <otte@redhat.com>2015-03-18 15:22:09 +0100
commit99c4f2dd3947c290e3ea19153202be3e43b22add (patch)
tree96b6918a58716e76b54dcd5c4db30eea87bb85e5
parent0529e15d61e9e23ad16562d93491ed25f96eef77 (diff)
downloadgtk+-99c4f2dd3947c290e3ea19153202be3e43b22add.tar.gz
render: Make image effect not depend on state
Instead rely on -gtk-image-effect only. Adwaita should already work this way. Relying on state was a leftover feature from the GTK 2 days.
-rw-r--r--gtk/gtkrender.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/gtk/gtkrender.c b/gtk/gtkrender.c
index caead6faac..bb1f437b46 100644
--- a/gtk/gtkrender.c
+++ b/gtk/gtkrender.c
@@ -1077,7 +1077,6 @@ gtk_do_render_icon_pixbuf (GtkStyleContext *context,
GdkPixbuf *scaled;
GdkPixbuf *stated;
GdkPixbuf *base_pixbuf;
- GtkStateFlags state;
gint width = 1;
gint height = 1;
cairo_t *cr;
@@ -1089,8 +1088,6 @@ gtk_do_render_icon_pixbuf (GtkStyleContext *context,
base_pixbuf = gtk_icon_source_get_pixbuf (source);
G_GNUC_END_IGNORE_DEPRECATIONS;
- state = gtk_style_context_get_state (context);
-
g_return_val_if_fail (base_pixbuf != NULL, NULL);
if (size != (GtkIconSize) -1 &&
@@ -1122,9 +1119,9 @@ gtk_do_render_icon_pixbuf (GtkStyleContext *context,
image_effect = _gtk_css_image_effect_value_get
(_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_GTK_IMAGE_EFFECT));
- if (image_effect == GTK_CSS_IMAGE_EFFECT_DIM ||
- state & GTK_STATE_FLAG_INSENSITIVE)
+ switch (image_effect)
{
+ case GTK_CSS_IMAGE_EFFECT_DIM:
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
gdk_pixbuf_get_width (scaled),
gdk_pixbuf_get_height (scaled));
@@ -1139,10 +1136,9 @@ gtk_do_render_icon_pixbuf (GtkStyleContext *context,
cairo_image_surface_get_width (surface),
cairo_image_surface_get_height (surface));
cairo_surface_destroy (surface);
- }
- else if (image_effect == GTK_CSS_IMAGE_EFFECT_HIGHLIGHT ||
- state & GTK_STATE_FLAG_PRELIGHT)
- {
+ break;
+
+ case GTK_CSS_IMAGE_EFFECT_HIGHLIGHT:
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
gdk_pixbuf_get_width (scaled),
gdk_pixbuf_get_height (scaled));
@@ -1158,9 +1154,15 @@ gtk_do_render_icon_pixbuf (GtkStyleContext *context,
cairo_image_surface_get_width (surface),
cairo_image_surface_get_height (surface));
cairo_surface_destroy (surface);
+ break;
+
+ default:
+ g_warn_if_reached ();
+ /* fall through */
+ case GTK_CSS_IMAGE_EFFECT_NONE:
+ stated = scaled;
+ break;
}
- else
- stated = scaled;
return stated;
}