SHA256
1
0
forked from pool/gdm
gdm/gdm-quit-plymouth-on-headless.patch
Dominique Leuenberger 6451e2dc99 Accepting request 599911 from home:zhangxiaofei:branches:GNOME:Factory
- Add gdm-quit-plymouth-on-headless.patch: Stop boot splash
  whenever a display is managed, to avoid systems without monitor
  from hanging (boo#1089673 bgo#795477).

OBS-URL: https://build.opensuse.org/request/show/599911
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=396
2018-04-24 06:59:37 +00:00

71 lines
2.5 KiB
Diff

From 0f97c73ef56df6d7cc5d582d9f984ba1e697c734 Mon Sep 17 00:00:00 2001
From: Felix Zhang <fezhang@suse.com>
Date: Mon, 23 Apr 2018 15:01:45 +0800
Subject: [PATCH] manager: always quit plymouth on a managed display, in a
lapsed time
When booting up gdm without monitor, the display is marked as
managed but never gets a connected session client afterwards,
causing all the depending systemd targets to hang waiting plymouth
to quit.
This commit kind of reverts commit 2cbd7ad, to always quit plymouth
when a display is managed, but adding a timeout to get around the
issue fixed by commit 2cbd7ad1.
https://bugzilla.gnome.org/show_bug.cgi?id=795477
---
daemon/gdm-manager.c | 22 ++++++----------------
1 file changed, 6 insertions(+), 16 deletions(-)
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
index 7539acf1..24b90301 100644
--- a/daemon/gdm-manager.c
+++ b/daemon/gdm-manager.c
@@ -1673,6 +1673,12 @@ on_display_status_changed (GdmDisplay *display,
}
if (status == GDM_DISPLAY_MANAGED) {
+#ifdef WITH_PLYMOUTH
+ if (quit_plymouth) {
+ g_timeout_add_seconds (20, (GSourceFunc) plymouth_quit_with_transition, NULL);
+ manager->priv->plymouth_is_running = FALSE;
+ }
+#endif
greeter_display_started (manager, display);
}
break;
@@ -1954,15 +1960,6 @@ on_user_session_started (GdmSession *session,
{
g_debug ("GdmManager: session started %d", pid);
add_session_record (manager, session, pid, SESSION_RECORD_LOGIN);
-
-#ifdef WITH_PLYMOUTH
- if (g_strcmp0 (service_name, "gdm-autologin") == 0) {
- if (manager->priv->plymouth_is_running) {
- g_timeout_add_seconds (20, (GSourceFunc) plymouth_quit_with_transition, NULL);
- manager->priv->plymouth_is_running = FALSE;
- }
- }
-#endif
}
static void
@@ -2116,13 +2113,6 @@ on_session_client_connected (GdmSession *session,
return;
}
-#ifdef WITH_PLYMOUTH
- if (manager->priv->plymouth_is_running) {
- plymouth_quit_with_transition ();
- manager->priv->plymouth_is_running = FALSE;
- }
-#endif
-
g_object_get (G_OBJECT (display), "allow-timed-login", &allow_timed_login, NULL);
if (!allow_timed_login) {
--
2.13.6