popover: Remove signal handlers in dispose
authorMatthias Clasen <mclasen@redhat.com>
Thu, 9 Apr 2015 00:20:38 +0000 (20:20 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 9 Apr 2015 10:39:11 +0000 (06:39 -0400)
If we don't, they may get triggered at an inopportune
time later, causing us to crash.

See
https://bugzilla.redhat.com/show_bug.cgi?id=1203499

https://bugzilla.gnome.org/show_bug.cgi?id=747539

gtk/gtkpopover.c

index 97d13aa86119cf3fc24227f128b17ea4aa096813..37064c829a74161161b257a98c13a861a28caba6 100644 (file)
@@ -304,7 +304,10 @@ gtk_popover_dispose (GObject *object)
   GtkPopoverPrivate *priv = popover->priv;
 
   if (priv->window)
-    _gtk_window_remove_popover (priv->window, GTK_WIDGET (object));
+    {
+      g_signal_handlers_disconnect_by_data (priv->window, popover);
+      _gtk_window_remove_popover (priv->window, GTK_WIDGET (object));
+    }
 
   priv->window = NULL;