[gtk+] cellrendererpixbuf: Don't eat states



commit fa3b803de9aef33208a71c6e2113deac468e5f8d
Author: Benjamin Otte <otte redhat com>
Date:   Thu Sep 5 18:45:13 2013 +0200

    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

 gtk/gtkcellrendererpixbuf.c |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkcellrendererpixbuf.c b/gtk/gtkcellrendererpixbuf.c
index 1ae7995..1af8c42 100644
--- a/gtk/gtkcellrendererpixbuf.c
+++ b/gtk/gtkcellrendererpixbuf.c
@@ -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;
+  state = gtk_cell_renderer_get_state (cell, widget, flags);
 
-  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);


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