[gdm] manager: finish off active displays when closing down
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdm] manager: finish off active displays when closing down
- Date: Wed, 9 Jul 2014 14:30:49 +0000 (UTC)
commit ebbf2bed03bac3d4d68d9ef2fc560c847a8b931a
Author: Ray Strode <rstrode redhat com>
Date: Wed Jun 4 15:02:32 2014 -0400
manager: finish off active displays when closing down
If the daemon is killed while sitting a the log in screen,
we never actually unmanage the display, and instead die
of an assertion failure in gdm_display_dispose.
This commit makes sure the X server is killed off properly.
https://bugzilla.gnome.org/show_bug.cgi?id=731234
daemon/gdm-manager.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
index dbcc8bc..60f43b0 100644
--- a/daemon/gdm-manager.c
+++ b/daemon/gdm-manager.c
@@ -2287,6 +2287,18 @@ unexport_display (const char *id,
}
static void
+finish_display (const char *id,
+ GdmDisplay *display,
+ GdmManager *manager)
+{
+ if (gdm_display_get_status (display) != GDM_DISPLAY_MANAGED)
+ return;
+
+ gdm_display_unmanage (display);
+ gdm_display_finish (display);
+}
+
+static void
gdm_manager_finalize (GObject *object)
{
GdmManager *manager;
@@ -2321,6 +2333,10 @@ gdm_manager_finalize (GObject *object)
g_dbus_interface_skeleton_unexport (G_DBUS_INTERFACE_SKELETON (manager));
}
+ gdm_display_store_foreach (manager->priv->display_store,
+ (GdmDisplayStoreFunc) finish_display,
+ manager);
+
gdm_display_store_clear (manager->priv->display_store);
g_dbus_object_manager_server_set_connection (manager->priv->object_manager, NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]