[gtk+] gtk: gtk_cell_renderer_get_state(): a row can be both selected and insensitive



commit 1c0f85a813b89327c01de568f16b1ffd598e0131
Author: Michael Natterer <mitch gimp org>
Date:   Sun Feb 6 14:43:55 2011 +0100

    gtk: gtk_cell_renderer_get_state(): a row can be both selected and insensitive
    
    so pull the SELECTED state flag out of the !sensitive branch. Also,
    don't make FOCUSED depend on SELECTED here, it's up to the widget to
    decide whether or not that is possible.

 gtk/gtkcellrenderer.c |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)
---
diff --git a/gtk/gtkcellrenderer.c b/gtk/gtkcellrenderer.c
index 2ecdaf0..b0f7937 100644
--- a/gtk/gtkcellrenderer.c
+++ b/gtk/gtkcellrenderer.c
@@ -1703,21 +1703,21 @@ gtk_cell_renderer_get_state (GtkCellRenderer      *cell,
   if ((widget && !gtk_widget_get_sensitive (widget)) ||
       (cell && !gtk_cell_renderer_get_sensitive (cell)) ||
       (cell_state & GTK_CELL_RENDERER_INSENSITIVE) != 0)
-    state |= GTK_STATE_FLAG_INSENSITIVE;
+    {
+      state |= GTK_STATE_FLAG_INSENSITIVE;
+    }
   else
     {
-      if ((cell_state & GTK_CELL_RENDERER_SELECTED) != 0)
-        {
-          state |= GTK_STATE_FLAG_SELECTED;
-
-          if ((widget && gtk_widget_has_focus (widget)) &&
-              (cell_state & GTK_CELL_RENDERER_FOCUSED) != 0)
-            state |= GTK_STATE_FLAG_FOCUSED;
-        }
+      if ((widget && gtk_widget_has_focus (widget)) &&
+          (cell_state & GTK_CELL_RENDERER_FOCUSED) != 0)
+        state |= GTK_STATE_FLAG_FOCUSED;
 
       if ((cell_state & GTK_CELL_RENDERER_PRELIT) != 0)
         state |= GTK_STATE_FLAG_PRELIGHT;
     }
 
+  if ((cell_state & GTK_CELL_RENDERER_SELECTED) != 0)
+    state |= GTK_STATE_FLAG_SELECTED;
+
   return state;
 }



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