SHA256
1
0
forked from pool/gdm
gdm/gdm-restart-session-when-X-server-restart.patch
2024-08-09 10:40:07 +00:00

31 lines
1.9 KiB
Diff

diff -urp gdm-46.2.orig/daemon/gdm-local-display-factory.c gdm-46.2/daemon/gdm-local-display-factory.c
--- gdm-46.2.orig/daemon/gdm-local-display-factory.c 2024-07-30 13:22:32.183596366 -0500
+++ gdm-46.2/daemon/gdm-local-display-factory.c 2024-07-30 13:43:55.948752639 -0500
@@ -555,11 +555,13 @@ on_display_status_changed (GdmDisplay
/* if this is a local display, ensure that we get a login
* screen when the user logs out.
*/
+ g_debug ("GdmLocalDisplayFactory: session_class = %s active_vt = %u", session_class, factory->active_vt);
if (is_local &&
((g_strcmp0 (session_class, "greeter") != 0 &&
(!seat_active_session || g_strcmp0(session_id, seat_active_session) == 0)) ||
#if defined(ENABLE_USER_DISPLAY_SERVER)
(g_strcmp0 (seat_id, "seat0") == 0 && factory->active_vt == GDM_INITIAL_VT) ||
+ (g_strcmp0 (seat_id, "seat0") == 0 && factory->active_vt == 0) ||
#endif
g_strcmp0 (seat_id, "seat0") != 0)) {
/* reset num failures */
diff -urp gdm-46.2.orig/daemon/gdm-manager.c gdm-46.2/daemon/gdm-manager.c
--- gdm-46.2.orig/daemon/gdm-manager.c 2024-07-30 13:22:32.183596366 -0500
+++ gdm-46.2/daemon/gdm-manager.c 2024-07-30 13:22:55.280775612 -0500
@@ -1595,7 +1595,8 @@ on_display_status_changed (GdmDisplay *d
}
#endif
- g_object_set_data (G_OBJECT (display), "gdm-user-session", NULL);
+ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL )
+ g_object_set_data (G_OBJECT (display), "gdm-user-session", NULL);
if (display == manager->automatic_login_display) {
g_clear_weak_pointer (&manager->automatic_login_display);