diff options
Diffstat (limited to 'daemon/gdm-slave.c')
-rw-r--r-- | daemon/gdm-slave.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c index ed4552ed..797de0d6 100644 --- a/daemon/gdm-slave.c +++ b/daemon/gdm-slave.c @@ -813,6 +813,18 @@ gdm_slave_stop (GdmSlave *slave) { g_debug ("Stopping slave"); + if (slave->priv->greeter != NULL) { + gdm_greeter_stop (slave->priv->greeter); + g_object_unref (slave->priv->greeter); + slave->priv->greeter = NULL; + } + + if (slave->priv->server != NULL) { + gdm_server_stop (slave->priv->server); + g_object_unref (slave->priv->server); + slave->priv->server = NULL; + } + if (slave->priv->display_proxy != NULL) { g_object_unref (slave->priv->display_proxy); } @@ -965,6 +977,8 @@ gdm_slave_finalize (GObject *object) g_return_if_fail (slave->priv != NULL); + gdm_slave_stop (slave); + G_OBJECT_CLASS (gdm_slave_parent_class)->finalize (object); } |