diff options
author | Benjamin Otte <otte@redhat.com> | 2014-08-15 18:26:35 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2014-08-16 16:34:15 +0200 |
commit | db1ab7ddf8ff86240b49e4c17ab56691bada77eb (patch) | |
tree | b8e5b42cfa2aa4d3b37e04f8f0c17d5c3eeadde8 /gtk/gtktogglebutton.c | |
parent | cd349dcd48c9e71d81e56a0810d0f4f5cf5e9cd7 (diff) | |
download | gtk+-db1ab7ddf8ff86240b49e4c17ab56691bada77eb.tar.gz |
button: Handle :inconsistent in GtkToggleButton
Diffstat (limited to 'gtk/gtktogglebutton.c')
-rw-r--r-- | gtk/gtktogglebutton.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/gtk/gtktogglebutton.c b/gtk/gtktogglebutton.c index ba97368bdd..b12fbf29e7 100644 --- a/gtk/gtktogglebutton.c +++ b/gtk/gtktogglebutton.c @@ -559,8 +559,10 @@ gtk_toggle_button_set_inconsistent (GtkToggleButton *toggle_button, { priv->inconsistent = setting; - gtk_toggle_button_update_state (GTK_BUTTON (toggle_button)); - gtk_widget_queue_draw (GTK_WIDGET (toggle_button)); + if (setting) + gtk_widget_set_state_flags (GTK_WIDGET (toggle_button), GTK_STATE_FLAG_INCONSISTENT, FALSE); + else + gtk_widget_unset_state_flags (GTK_WIDGET (toggle_button), GTK_STATE_FLAG_INCONSISTENT); g_object_notify (G_OBJECT (toggle_button), "inconsistent"); } @@ -653,17 +655,12 @@ static void gtk_toggle_button_update_state (GtkButton *button) { GtkToggleButton *toggle_button = GTK_TOGGLE_BUTTON (button); - GtkToggleButtonPrivate *priv = toggle_button->priv; GtkStateFlags new_state = 0; new_state = gtk_widget_get_state_flags (GTK_WIDGET (button)) & - ~(GTK_STATE_FLAG_INCONSISTENT | - GTK_STATE_FLAG_PRELIGHT | + ~(GTK_STATE_FLAG_PRELIGHT | GTK_STATE_FLAG_ACTIVE); - if (priv->inconsistent) - new_state |= GTK_STATE_FLAG_INCONSISTENT; - if (button->priv->in_button && button->priv->button_down) new_state |= GTK_STATE_FLAG_ACTIVE; |