From 26b03332a4cd6a08d85a81097762bee4eb21689d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 6 May 2015 16:53:43 +0200 Subject: GtkStackSwitcher: Don't emit notify::visible-child when setting a stack Synchronizing the visible child with the switcher's toggle buttons can lead to GtkButton::clicked being emitted twice. Once for the button that was active before, and once for the button that we just activated. This leads to notify::visible-child being called twice and one of them is with the wrong child. Let's deal with this in the same way we handle the visible child changing underneath us. https://bugzilla.gnome.org/show_bug.cgi?id=749021 --- gtk/gtkstackswitcher.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gtk/gtkstackswitcher.c') diff --git a/gtk/gtkstackswitcher.c b/gtk/gtkstackswitcher.c index 42e41bbd75..f2932a9a04 100644 --- a/gtk/gtkstackswitcher.c +++ b/gtk/gtkstackswitcher.c @@ -300,7 +300,9 @@ populate_switcher (GtkStackSwitcher *self) if (widget) { button = g_hash_table_lookup (priv->buttons, widget); + priv->in_child_changed = TRUE; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); + priv->in_child_changed = FALSE; } } -- cgit v1.2.1