From 052fb4689d4ba431cab1d743f6c8ea0820da8341 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 6 May 2011 16:05:44 -0400 Subject: greeter: disconnect from user manager on tear down We don't want any signal handlers to run after the widgets they are meant for are destroyed. --- gui/simple-greeter/gdm-user-chooser-widget.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gui/simple-greeter/gdm-user-chooser-widget.c b/gui/simple-greeter/gdm-user-chooser-widget.c index 84c95864..0f73cc5a 100644 --- a/gui/simple-greeter/gdm-user-chooser-widget.c +++ b/gui/simple-greeter/gdm-user-chooser-widget.c @@ -1063,6 +1063,22 @@ gdm_user_chooser_widget_dispose (GObject *object) } if (widget->priv->manager != NULL) { + g_signal_handlers_disconnect_by_func (widget->priv->manager, + G_CALLBACK (on_user_added), + widget); + g_signal_handlers_disconnect_by_func (widget->priv->manager, + G_CALLBACK (on_user_removed), + widget); + g_signal_handlers_disconnect_by_func (widget->priv->manager, + G_CALLBACK (on_is_loaded_changed), + widget); + g_signal_handlers_disconnect_by_func (widget->priv->manager, + G_CALLBACK (on_user_is_logged_in_changed), + widget); + g_signal_handlers_disconnect_by_func (widget->priv->manager, + G_CALLBACK (on_user_changed), + widget); + g_object_unref (widget->priv->manager); widget->priv->manager = NULL; } -- cgit v1.2.1