summaryrefslogtreecommitdiff
path: root/gui/simple-greeter/gdm-user-chooser-widget.c
diff options
context:
space:
mode:
Diffstat (limited to 'gui/simple-greeter/gdm-user-chooser-widget.c')
-rw-r--r--gui/simple-greeter/gdm-user-chooser-widget.c16
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 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;
}