From: Michael Natterer Date: Sun, 6 Feb 2011 13:43:55 +0000 (+0100) Subject: gtk: gtk_cell_renderer_get_state(): a row can be both selected and insensitive X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=1c0f85a813b89327c01de568f16b1ffd598e0131;p=~andy%2Fgtk 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. --- diff --git a/gtk/gtkcellrenderer.c b/gtk/gtkcellrenderer.c index 2ecdaf041..b0f793768 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; }