From: Bastien Nocera Date: Tue, 14 Mar 2023 15:00:47 +0000 (+0100) Subject: gtk: Fix "children left" warning with fatal warnings X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~555^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=4f1ea18c;p=gtk4.git gtk: Fix "children left" warning with fatal warnings When fatal warnings were turned on, the developer would never see which widgets were left as children to the widget that triggered the warning as those were printed in separate g_warning calls. Print a single warning with all the info so runs with fatal warnings aren't left without any info. --- diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 702f9a72c1..974e126172 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -7637,14 +7637,20 @@ gtk_widget_finalize (GObject *object) if (_gtk_widget_get_first_child (widget) != NULL) { GtkWidget *child; - g_warning ("Finalizing %s %p, but it still has children left:", - gtk_widget_get_name (widget), widget); + GString *s; + + s = g_string_new (NULL); + g_string_append_printf (s, "Finalizing %s %p, but it still has children left:", + gtk_widget_get_name (widget), widget); for (child = _gtk_widget_get_first_child (widget); child != NULL; child = _gtk_widget_get_next_sibling (child)) { - g_warning (" - %s %p", gtk_widget_get_name (child), child); + g_string_append_printf (s, "\n - %s %p", + gtk_widget_get_name (child), child); } + g_warning ("%s", s->str); + g_string_free (s, TRUE); } if (g_object_is_floating (object))