From: Daniel Boles Date: Sun, 22 Apr 2018 15:25:07 +0000 (+0100) Subject: MenuButton: Disconnect newly added signal handler X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~22^2~427 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=279344a2e692e71961c3269caa7f72ce3aa0222a;p=gtk4.git MenuButton: Disconnect newly added signal handler Otherwise, we do stuff we shouldn't, as the failing pipeline showed: https://gitlab.gnome.org/GNOME/gtk/pipelines/9431 https://gitlab.gnome.org/GNOME/gtk/issues/199 --- diff --git a/gtk/gtkmenubutton.c b/gtk/gtkmenubutton.c index 474f38b831..6df1985218 100644 --- a/gtk/gtkmenubutton.c +++ b/gtk/gtkmenubutton.c @@ -953,6 +953,12 @@ update_popover_direction (GtkMenuButton *menu_button) } } +static void +popover_destroy_cb (GtkMenuButton *menu_button) +{ + gtk_menu_button_set_popover (menu_button, NULL); +} + /** * gtk_menu_button_set_direction: * @menu_button: a #GtkMenuButton @@ -1026,6 +1032,9 @@ gtk_menu_button_dispose (GObject *object) if (priv->popover) { + g_signal_handlers_disconnect_by_func (priv->popover, + popover_destroy_cb, + object); gtk_popover_set_relative_to (GTK_POPOVER (priv->popover), NULL); priv->popover = NULL; } @@ -1090,12 +1099,6 @@ gtk_menu_button_get_use_popover (GtkMenuButton *menu_button) return priv->use_popover; } -static void -popover_destroy_cb (GtkMenuButton *menu_button) -{ - gtk_menu_button_set_popover (menu_button, NULL); -} - /** * gtk_menu_button_set_popover: * @menu_button: a #GtkMenuButton @@ -1128,6 +1131,9 @@ gtk_menu_button_set_popover (GtkMenuButton *menu_button, g_signal_handlers_disconnect_by_func (priv->popover, menu_deactivate_cb, menu_button); + g_signal_handlers_disconnect_by_func (priv->popover, + popover_destroy_cb, + menu_button); gtk_popover_set_relative_to (GTK_POPOVER (priv->popover), NULL); }