summaryrefslogtreecommitdiff
path: root/gtk/gtkwidget.c
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2011-01-23 18:21:32 +0100
committerCarlos Garnacho <carlosg@gnome.org>2011-01-23 19:34:44 +0100
commit0c7772f0cf39b2f09ddc55e0d8134c437d87004e (patch)
tree05ab76294d75bb2639e67cad1f215f32eb69ef65 /gtk/gtkwidget.c
parenta0e1fa9e77a0082afda4b86d2f50f78c54a00ee7 (diff)
downloadgtk+-0c7772f0cf39b2f09ddc55e0d8134c437d87004e.tar.gz
Do not unset sensitivity mistakenly in gtk_widget_set_state_flags()
together with commit 8903615a34, this finally fixes bug #640282. Insensitivity is handled separatedly in _gtk_widget_update_state_flags(), but the insensitive flag is mistakenly unset afterwards if clear is TRUE in gtk_widget_set_state_flags().
Diffstat (limited to 'gtk/gtkwidget.c')
-rw-r--r--gtk/gtkwidget.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index c1950894a9..7090dc68d5 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -6969,7 +6969,8 @@ _gtk_widget_update_state_flags (GtkWidget *widget,
gtk_widget_set_sensitive (widget,
operation != STATE_CHANGE_UNSET);
- flags &= ~(GTK_STATE_FLAG_INSENSITIVE);
+ if (operation != STATE_CHANGE_REPLACE)
+ flags &= ~(GTK_STATE_FLAG_INSENSITIVE);
/* Focused state is meant to be set only on the widget
* being changed itself, not on the children */