cellrendererpixbuf: Don't eat states

Even when not following states, blacklist the states we don't follow
instead of whitelisting the ones we do. This way, we don't accidentally
eat new ones like the text direction flags.

Fixes a bug where text direction wasn't available when rendering stock
items.

https://bugzilla.gnome.org/show_bug.cgi?id=702423
This commit is contained in:
Benjamin Otte 2013-09-05 18:45:13 +02:00
parent 502d7644fe
commit fa3b803de9

View File

@ -531,13 +531,10 @@ gtk_cell_renderer_pixbuf_render (GtkCellRenderer *cell,
context = gtk_widget_get_style_context (widget);
gtk_style_context_save (context);
state = GTK_STATE_FLAG_NORMAL;
if (priv->follow_state)
state = gtk_cell_renderer_get_state (cell, widget, flags);
else if (!gtk_widget_get_sensitive (widget) ||
!gtk_cell_renderer_get_sensitive (cell))
state |= GTK_STATE_FLAG_INSENSITIVE;
if (!priv->follow_state)
state &= ~(GTK_STATE_FLAG_FOCUSED | GTK_STATE_FLAG_PRELIGHT | GTK_STATE_FLAG_SELECTED);
gtk_style_context_set_state (context, state);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_IMAGE);