From d877420b26b2eff2d16306e5befd21fa093fa232 Mon Sep 17 00:00:00 2001 From: Stefano Karapetsas Date: Sun, 15 Jan 2012 13:33:10 +0100 Subject: switch user, use GDM if MDM not found (lightDM supports gdmflexiserver too) --- mate-session/gsm-manager.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) 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); + } } } -- cgit v1.2.1