]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkcellrenderer.c
cellrenderer: Use the widget state flags as a base for cell renderers' state
[~andy/gtk] / gtk / gtkcellrenderer.c
index 609c4a2923354c199e084dd6cae79b74f526d1ea..1cef97bffae9812ff7f152636cb3dd4d1c1df827 100644 (file)
@@ -1742,7 +1742,12 @@ gtk_cell_renderer_get_state (GtkCellRenderer      *cell,
   g_return_val_if_fail (!cell || GTK_IS_CELL_RENDERER (cell), 0);
   g_return_val_if_fail (!widget || GTK_IS_WIDGET (widget), 0);
 
-  if ((widget && !gtk_widget_is_sensitive (widget)) ||
+  if (widget)
+    state |= gtk_widget_get_state_flags (widget);
+
+  state &= ~(GTK_STATE_FLAG_FOCUSED | GTK_STATE_FLAG_PRELIGHT | GTK_STATE_FLAG_SELECTED);
+
+  if ((state & GTK_STATE_FLAG_INSENSITIVE) != 0 ||
       (cell && !gtk_cell_renderer_get_sensitive (cell)) ||
       (cell_state & GTK_CELL_RENDERER_INSENSITIVE) != 0)
     {