From f7295f73f424e22eacb940c92e43326d75c901e1 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Mon, 22 Jul 2024 14:58:47 -0400 Subject: [PATCH 1/3] display: Add new FAILING state We need to be able to detect failure and quit plymouth before reacting to the failure (and starting Xorg). This commit adds a new FAILING state that gets run before FAILED, so things can be ordered properly d# --- daemon/gdm-display.c | 1 + daemon/gdm-display.h | 1 + daemon/gdm-local-display-factory.c | 2 ++ 3 files changed, 4 insertions(+) diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c index 3446785..b8af350 100644 --- a/daemon/gdm-display.c +++ b/daemon/gdm-display.c @@ -694,6 +694,7 @@ gdm_display_unmanage (GdmDisplay *self) if (!priv->session_registered) { g_warning ("GdmDisplay: Session never registered, failing"); + _gdm_display_set_status (self, GDM_DISPLAY_FAILING); _gdm_display_set_status (self, GDM_DISPLAY_FAILED); } else { _gdm_display_set_status (self, GDM_DISPLAY_UNMANAGED); diff --git a/daemon/gdm-display.h b/daemon/gdm-display.h index ef3736c..bd048cd 100644 --- a/daemon/gdm-display.h +++ b/daemon/gdm-display.h @@ -36,6 +36,7 @@ typedef enum { GDM_DISPLAY_MANAGED, GDM_DISPLAY_WAITING_TO_FINISH, GDM_DISPLAY_FINISHED, + GDM_DISPLAY_FAILING, GDM_DISPLAY_FAILED, } GdmDisplayStatus; diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c index 61b7b45..6df9e84 100644 --- a/daemon/gdm-local-display-factory.c +++ b/daemon/gdm-local-display-factory.c @@ -577,6 +577,8 @@ on_display_status_changed (GdmDisplay *display, gdm_local_display_factory_sync_seats (factory); } break; + case GDM_DISPLAY_FAILING: + break; case GDM_DISPLAY_FAILED: /* leave the display number in factory->used_display_numbers so that it doesn't get reused */ -- 2.44.0