summaryrefslogtreecommitdiff
path: root/gtk/gtktogglebutton.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2014-08-15 18:26:35 +0200
committerBenjamin Otte <otte@redhat.com>2014-08-16 16:34:15 +0200
commitdb1ab7ddf8ff86240b49e4c17ab56691bada77eb (patch)
treeb8e5b42cfa2aa4d3b37e04f8f0c17d5c3eeadde8 /gtk/gtktogglebutton.c
parentcd349dcd48c9e71d81e56a0810d0f4f5cf5e9cd7 (diff)
downloadgtk+-db1ab7ddf8ff86240b49e4c17ab56691bada77eb.tar.gz
button: Handle :inconsistent in GtkToggleButton
Diffstat (limited to 'gtk/gtktogglebutton.c')
-rw-r--r--gtk/gtktogglebutton.c13
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;