From b978f9debf1d6a9bbb19b190560e6e886a79c080 Mon Sep 17 00:00:00 2001 From: Michael Webster Date: Tue, 10 Feb 2026 17:44:31 -0500 Subject: [PATCH] csm-manager.c: Close the end-session dialog before trying to lock the screen during suspend/hibernate. The cinnamon session dialog holds a 'grab' when it's active. We then attempt to lock the screen, and the screensaver tries to get its own grab, repeatedly failing. Once it finally gives up suspend/hibernate can proceed. We already close the dialog before attempting to switch users, but for some reason didn't follow the same pattern here. Fixes https://github.com/linuxmint/cinnamon/issues/13552 --- cinnamon-session/csm-manager.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cinnamon-session/csm-manager.c b/cinnamon-session/csm-manager.c index c7642c1..4a525b7 100644 --- a/cinnamon-session/csm-manager.c +++ b/cinnamon-session/csm-manager.c @@ -1232,12 +1232,12 @@ manager_switch_user (CsmManager *manager) static void manager_attempt_hibernate (CsmManager *manager) { + close_end_session_dialog (manager); + /* lock the screen before we try anything. If it all fails, at least the screen is locked * (if preferences dictate it) */ manager_perhaps_lock (manager); - close_end_session_dialog (manager); - if (csm_system_can_hibernate (manager->priv->system)) { csm_system_hibernate (manager->priv->system); } @@ -1246,12 +1246,12 @@ manager_attempt_hibernate (CsmManager *manager) static void manager_attempt_suspend (CsmManager *manager) { + close_end_session_dialog (manager); + /* lock the screen before we try anything. If it all fails, at least the screen is locked * (if preferences dictate it) */ manager_perhaps_lock (manager); - close_end_session_dialog (manager); - if (g_settings_get_boolean (manager->priv->settings, KEY_PREFER_HYBRID_SLEEP) && csm_system_can_hybrid_sleep (manager->priv->system)) { csm_system_hybrid_sleep (manager->priv->system);