summaryrefslogtreecommitdiff
path: root/gtk/gtkcellrenderer.c
diff options
context:
space:
mode:
authorMichael Natterer <mitch@gimp.org>2011-02-06 14:43:55 +0100
committerMichael Natterer <mitch@gimp.org>2011-02-06 14:45:49 +0100
commit1c0f85a813b89327c01de568f16b1ffd598e0131 (patch)
tree5ec0e473342f0b3e7017ac57b6b8b0bd751eb226 /gtk/gtkcellrenderer.c
parent1aaed01d4ffc38ae3eec1ca1070c1fea03c41833 (diff)
downloadgtk+-1c0f85a813b89327c01de568f16b1ffd598e0131.tar.gz
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.
Diffstat (limited to 'gtk/gtkcellrenderer.c')
-rw-r--r--gtk/gtkcellrenderer.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/gtk/gtkcellrenderer.c b/gtk/gtkcellrenderer.c
index 2ecdaf0414..b0f793768b 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;
}