summaryrefslogtreecommitdiff
path: root/src/lightdm-gtk-greeter.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lightdm-gtk-greeter.c')
-rw-r--r--src/lightdm-gtk-greeter.c29
1 files changed, 19 insertions, 10 deletions
diff --git a/src/lightdm-gtk-greeter.c b/src/lightdm-gtk-greeter.c
index 0504ea0..555aa96 100644
--- a/src/lightdm-gtk-greeter.c
+++ b/src/lightdm-gtk-greeter.c
@@ -1002,6 +1002,7 @@ static void
set_session (const gchar *session)
{
gchar *last_session = NULL;
+ gchar *greeter_default_session = NULL;
GList *sessions = lightdm_get_sessions ();
/* Validation */
@@ -1015,16 +1016,23 @@ set_session (const gchar *session)
else
{
/* default */
- const gchar* default_session = lightdm_greeter_get_default_session_hint (greeter);
- if (g_strcmp0 (session, default_session) != 0 &&
- is_valid_session (sessions, default_session))
- session = default_session;
- /* first in the sessions list */
- else if (sessions)
- session = lightdm_session_get_key (sessions->data);
- /* give up */
+ greeter_default_session = config_get_string (NULL, CONFIG_KEY_DEFAULT_SESSION, NULL);
+ if (greeter_default_session && g_strcmp0 (session, greeter_default_session) != 0 &&
+ is_valid_session (sessions, greeter_default_session))
+ session = greeter_default_session;
else
- session = NULL;
+ {
+ const gchar* default_session = lightdm_greeter_get_default_session_hint (greeter);
+ if (g_strcmp0 (session, default_session) != 0 &&
+ is_valid_session (sessions, default_session))
+ session = default_session;
+ /* first in the sessions list */
+ else if (sessions)
+ session = lightdm_session_get_key (sessions->data);
+ /* give up */
+ else
+ session = NULL;
+ }
}
}
@@ -1060,6 +1068,7 @@ set_session (const gchar *session)
g_free (current_session);
current_session = g_strdup (session);
g_free (last_session);
+ g_free (greeter_default_session);
}
void
@@ -2390,7 +2399,7 @@ set_displayed_user (LightDMGreeter *ldm, const gchar *username)
else
{
set_language (lightdm_language_get_code (lightdm_get_language ()));
- set_session (lightdm_greeter_get_default_session_hint (ldm));
+ set_session (NULL);
}
gtk_widget_set_tooltip_text (GTK_WIDGET (user_combo), user_tooltip);
start_authentication (username);