From 74a81cbb03a4b6a27b0e9c58099d54bc1537865d Mon Sep 17 00:00:00 2001 From: iain holmes Date: Fri, 22 Jul 2016 14:39:28 +0100 Subject: [PATCH] [GtkBox] Emit GtkContainer's add signal Even though GtkBox is a subclass of GtkContainer, it won't emit GtkContainer::add when a widget is added via gtk_box_pack functions. We emit that signal, and guard against cycles caused by the signal triggering another gtk_box_add call. --- gtk/gtkbox.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gtk/gtkbox.c b/gtk/gtkbox.c index 1ebcbcf..26c66cf 100644 --- a/gtk/gtkbox.c +++ b/gtk/gtkbox.c @@ -760,6 +760,8 @@ gtk_box_pack (GtkBox *box, gtk_widget_child_notify (child, "pack-type"); gtk_widget_child_notify (child, "position"); gtk_widget_thaw_child_notify (child); + + g_signal_emit_by_name (G_OBJECT (box), "add", child); } /** @@ -1188,6 +1190,11 @@ gtk_box_add (GtkContainer *container, { GtkBoxPrivate *private = GTK_BOX_GET_PRIVATE (container); + if (widget->parent == container) { + // Break the add signal cycle + return; + } + gtk_box_pack_start (GTK_BOX (container), widget, private->default_expand, private->default_expand,