[gnome-session/benzea/disable-xsmp-on-systemd: 2/2] session-fill: Disable session restoring on systemd



commit 852280068701d60bea4ab61df45ef79b752bc4ba
Author: Benjamin Berg <bberg redhat com>
Date:   Fri Nov 22 15:04:45 2019 +0100

    session-fill: Disable session restoring on systemd
    
    We cannot allow this as gnome-session would try to restore XSMP clients
    that are already started using systemd, resuling in session failures.
    
    Fixes: 41

 gnome-session/gsm-session-fill.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/gnome-session/gsm-session-fill.c b/gnome-session/gsm-session-fill.c
index af203bbc..bdd92081 100644
--- a/gnome-session/gsm-session-fill.c
+++ b/gnome-session/gsm-session-fill.c
@@ -132,8 +132,11 @@ static void
 load_standard_apps (GsmManager *manager,
                     GKeyFile   *keyfile)
 {
+        /* Note that saving/restoring sessions is not really possible on systemd, as
+         * XSMP clients cannot be reliably mapped to .desktop files. */
         g_debug ("fill: *** Adding required components");
-        handle_required_components (keyfile, !gsm_manager_get_failsafe (manager),
+        handle_required_components (keyfile,
+                                    !gsm_manager_get_failsafe (manager) && !gsm_manager_get_systemd_managed 
(manager),
                                     append_required_components_helper, manager);
         g_debug ("fill: *** Done adding required components");
 
@@ -143,7 +146,8 @@ load_standard_apps (GsmManager *manager,
 
                 autostart_dirs = gsm_util_get_autostart_dirs ();
 
-                maybe_load_saved_session_apps (manager);
+                if (!gsm_manager_get_systemd_managed (manager))
+                        maybe_load_saved_session_apps (manager);
 
                 for (i = 0; autostart_dirs[i]; i++) {
                         gsm_manager_add_autostart_apps_from_dir (manager,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]