popover: Use g_signal_connect_object on parent widget signal
authorCarlos Garnacho <carlosg@gnome.org>
Sun, 5 Jan 2020 19:17:38 +0000 (20:17 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 8 Jan 2020 23:48:21 +0000 (18:48 -0500)
The popover may be destroyed, leaving this dangling signal. This
may cause crashes on future parent widget resizes.

gtk/gtkpopover.c

index bcda0fdd508cc2e2906c42df3c00e2060f43cc52..a963b35110b7011c9fce74e52e6320ce1294e6bc 100644 (file)
@@ -1482,7 +1482,8 @@ gtk_popover_set_relative_to (GtkPopover *popover,
 
   if (priv->relative_to)
     {
-      g_signal_connect (priv->relative_to, "size-allocate", G_CALLBACK (size_changed), popover);
+      g_signal_connect_object (priv->relative_to, "size-allocate",
+                               G_CALLBACK (size_changed), popover, 0);
       gtk_css_node_set_parent (gtk_widget_get_css_node (GTK_WIDGET (popover)),
                                gtk_widget_get_css_node (relative_to));
       gtk_widget_set_parent (GTK_WIDGET (popover), relative_to);