summaryrefslogtreecommitdiff
path: root/mate-session/gsm-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'mate-session/gsm-manager.c')
-rw-r--r--mate-session/gsm-manager.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/mate-session/gsm-manager.c b/mate-session/gsm-manager.c
index cbddf21..eb84b87 100644
--- a/mate-session/gsm-manager.c
+++ b/mate-session/gsm-manager.c
@@ -72,6 +72,9 @@
#define MDM_FLEXISERVER_COMMAND "mdmflexiserver"
#define MDM_FLEXISERVER_ARGS "--startnew Standard"
+#define GDM_FLEXISERVER_COMMAND "gdmflexiserver"
+#define GDM_FLEXISERVER_ARGS "--startnew Standard"
+
#define KEY_LOCKDOWN_DIR "/desktop/mate/lockdown"
#define KEY_LOCK_DISABLE KEY_LOCKDOWN_DIR "/disable_lock_screen"
@@ -935,6 +938,26 @@ manager_switch_user (GsmManager *manager)
if (! res) {
g_debug ("GsmManager: Unable to start MDM greeter: %s", error->message);
g_error_free (error);
+
+ /* MDM not found, so we try to use gdmflexiserver from GDM */
+
+ char *gdm_command;
+
+ gdm_command = g_strdup_printf ("%s %s",
+ GDM_FLEXISERVER_COMMAND,
+ GDM_FLEXISERVER_ARGS);
+
+ error = NULL;
+ res = gdk_spawn_command_line_on_screen (gdk_screen_get_default (),
+ gdm_command,
+ &error);
+
+ g_free (gdm_command);
+
+ if (! res) {
+ g_debug ("GsmManager: Unable to start GDM greeter: %s", error->message);
+ g_error_free (error);
+ }
}
}