[gdm] greeter: disconnect from user manager on tear down



commit 052fb4689d4ba431cab1d743f6c8ea0820da8341
Author: Ray Strode <rstrode redhat com>
Date:   Fri May 6 16:05:44 2011 -0400

    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 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/gui/simple-greeter/gdm-user-chooser-widget.c b/gui/simple-greeter/gdm-user-chooser-widget.c
index 84c9586..0f73cc5 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;
         }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]