+++ /dev/null
---- lightdm/src/seat.c 2014-09-30 03:33:38 +0000
-+++ lightdm/src/seat.c 2014-10-20 14:28:16 +0000
-@@ -848,14 +848,19 @@
- static void
- configure_session (Session *session, SessionConfig *config, const gchar *session_name, const gchar *language)
- {
-- const gchar *desktop_name;
-+ gchar **desktop_names;
-
- session_set_config (session, config);
- session_set_env (session, "DESKTOP_SESSION", session_name);
- session_set_env (session, "GDMSESSION", session_name);
-- desktop_name = session_config_get_desktop_name (config);
-- if (desktop_name)
-- session_set_env (session, "XDG_CURRENT_DESKTOP", desktop_name);
-+ desktop_names = session_config_get_desktop_names (config);
-+ if (desktop_names)
-+ {
-+ gchar *value;
-+ value = g_strjoinv (":", desktop_names);
-+ session_set_env (session, "XDG_CURRENT_DESKTOP", value);
-+ g_free (value);
-+ }
- if (language && language[0] != '\0')
- {
- session_set_env (session, "LANG", language);
-
---- lightdm/src/session-config.c 2014-09-12 00:04:28 +0000
-+++ lightdm/src/session-config.c 2014-10-20 14:28:16 +0000
-@@ -16,8 +16,8 @@
- /* Session type */
- gchar *session_type;
-
-- /* Desktop name */
-- gchar *desktop_name;
-+ /* Desktop names */
-+ gchar **desktop_names;
-
- /* Command to run */
- gchar *command;
-@@ -53,7 +53,20 @@
- config->priv->session_type = g_key_file_get_string (desktop_file, G_KEY_FILE_DESKTOP_GROUP, "X-LightDM-Session-Type", NULL);
- if (!config->priv->session_type)
- config->priv->session_type = g_strdup ("x");
-- config->priv->desktop_name = g_key_file_get_string (desktop_file, G_KEY_FILE_DESKTOP_GROUP, "X-LightDM-DesktopName", NULL);
-+
-+ config->priv->desktop_names = g_key_file_get_string_list (desktop_file, G_KEY_FILE_DESKTOP_GROUP, "DesktopNames", NULL, NULL);
-+ if (!config->priv->desktop_names)
-+ {
-+ gchar *name;
-+
-+ name = g_key_file_get_string (desktop_file, G_KEY_FILE_DESKTOP_GROUP, "X-LightDM-DesktopName", NULL);
-+ if (name)
-+ {
-+ config->priv->desktop_names = g_malloc (sizeof (gchar *) * 2);
-+ config->priv->desktop_names[0] = name;
-+ config->priv->desktop_names[1] = NULL;
-+ }
-+ }
- config->priv->compositor_command = g_key_file_get_string (desktop_file, G_KEY_FILE_DESKTOP_GROUP, "X-LightDM-System-Compositor-Command", NULL);
-
- g_key_file_free (desktop_file);
-@@ -75,11 +88,11 @@
- return config->priv->session_type;
- }
-
--const gchar *
--session_config_get_desktop_name (SessionConfig *config)
-+gchar **
-+session_config_get_desktop_names (SessionConfig *config)
- {
- g_return_val_if_fail (config != NULL, NULL);
-- return config->priv->desktop_name;
-+ return config->priv->desktop_names;
- }
-
- const gchar *
-@@ -101,7 +114,7 @@
- SessionConfig *self = SESSION_CONFIG (object);
-
- g_free (self->priv->session_type);
-- g_free (self->priv->desktop_name);
-+ g_strfreev (self->priv->desktop_names);
- g_free (self->priv->command);
- g_free (self->priv->compositor_command);
-
-
---- lightdm/src/session-config.h 2014-09-12 00:04:28 +0000
-+++ lightdm/src/session-config.h 2014-10-20 14:28:16 +0000
-@@ -42,7 +42,7 @@
-
- const gchar *session_config_get_session_type (SessionConfig *config);
-
--const gchar *session_config_get_desktop_name (SessionConfig *config);
-+gchar **session_config_get_desktop_names (SessionConfig *config);
-
- const gchar *session_config_get_compositor_command (SessionConfig *config);
-
-
---- lightdm/tests/Makefile.am 2014-09-30 03:33:38 +0000
-+++ lightdm/tests/Makefile.am 2014-10-20 14:28:16 +0000
-@@ -56,6 +56,7 @@
- test-login-guest-session-config \
- test-group-membership \
- test-xdg-current-desktop \
-+ test-xdg-current-desktop-legacy \
- test-xdg-seat \
- test-language-env \
- test-session-stdout \
-@@ -339,6 +340,7 @@
- data/sessions/mir.desktop \
- data/sessions/mir-container.desktop \
- data/sessions/named.desktop \
-+ data/sessions/named-legacy.desktop \
- data/sessions/surfaceflinger.desktop \
- scripts/0-additional.conf \
- scripts/1-additional.conf \
-@@ -543,6 +545,7 @@
- scripts/vnc-open-file-descriptors.conf \
- scripts/xauthority.conf \
- scripts/xdg-current-desktop.conf \
-+ scripts/xdg-current-desktop-legacy.conf \
- scripts/xdg-seat.conf \
- scripts/xdmcp-client.conf \
- scripts/xdmcp-server-login.conf \
-
-=== added file 'tests/data/sessions/named-legacy.desktop'
---- lightdm/tests/data/sessions/named-legacy.desktop 1970-01-01 00:00:00 +0000
-+++ lightdm/tests/data/sessions/named-legacy.desktop 2014-10-20 14:28:16 +0000
-@@ -0,0 +1,5 @@
-+[Desktop Entry]
-+Name=Test Session
-+Comment=LightDM test session
-+Exec=test-session
-+X-LightDM-DesktopName=TestDesktop
-
-=== modified file 'tests/data/sessions/named.desktop'
---- lightdm/tests/data/sessions/named.desktop 2013-08-19 00:21:19 +0000
-+++ lightdm/tests/data/sessions/named.desktop 2014-10-20 14:28:16 +0000
-@@ -2,4 +2,4 @@
- Name=Test Session
- Comment=LightDM test session
- Exec=test-session
--X-LightDM-DesktopName=TestDesktop
-+DesktopNames=TestDesktop1;TestDesktop2;
-
-=== added file 'tests/scripts/xdg-current-desktop-legacy.conf'
---- lightdm/tests/scripts/xdg-current-desktop-legacy.conf 1970-01-01 00:00:00 +0000
-+++ lightdm/tests/scripts/xdg-current-desktop-legacy.conf 2014-10-20 14:28:16 +0000
-@@ -0,0 +1,30 @@
-+#
-+# Check XDG_CURRENT_DESKTOP is set for sessions that support it using the legacy key name
-+#
-+
-+[SeatDefaults]
-+autologin-user=have-password1
-+user-session=named-legacy
-+
-+#?*START-DAEMON
-+#?RUNNER DAEMON-START
-+
-+# X server starts
-+#?XSERVER-0 START VT=7 SEAT=seat0
-+
-+# Daemon connects when X server is ready
-+#?*XSERVER-0 INDICATE-READY
-+#?XSERVER-0 INDICATE-READY
-+#?XSERVER-0 ACCEPT-CONNECT
-+
-+# Session starts
-+#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_CURRENT_DESKTOP=TestDesktop XDG_GREETER_DATA_DIR=.*/have-password1 DESKTOP_SESSION=named-legacy USER=have-password1
-+#?LOGIN1 ACTIVATE-SESSION SESSION=c0
-+#?XSERVER-0 ACCEPT-CONNECT
-+#?SESSION-X-0 CONNECT-XSERVER
-+
-+# Cleanup
-+#?*STOP-DAEMON
-+#?SESSION-X-0 TERMINATE SIGNAL=15
-+#?XSERVER-0 TERMINATE SIGNAL=15
-+#?RUNNER DAEMON-EXIT STATUS=0
-
-=== modified file 'tests/scripts/xdg-current-desktop.conf'
---- lightdm/tests/scripts/xdg-current-desktop.conf 2014-03-17 18:33:02 +0000
-+++ lightdm/tests/scripts/xdg-current-desktop.conf 2014-10-20 14:28:16 +0000
-@@ -18,7 +18,7 @@
- #?XSERVER-0 ACCEPT-CONNECT
-
- # Session starts
--#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_CURRENT_DESKTOP=TestDesktop XDG_GREETER_DATA_DIR=.*/have-password1 DESKTOP_SESSION=named USER=have-password1
-+#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_CURRENT_DESKTOP=TestDesktop1:TestDesktop2 XDG_GREETER_DATA_DIR=.*/have-password1 DESKTOP_SESSION=named USER=have-password1
- #?LOGIN1 ACTIVATE-SESSION SESSION=c0
- #?XSERVER-0 ACCEPT-CONNECT
- #?SESSION-X-0 CONNECT-XSERVER
-
-=== added file 'tests/test-xdg-current-desktop-legacy'
---- lightdm/tests/test-xdg-current-desktop-legacy 1970-01-01 00:00:00 +0000
-+++ lightdm/tests/test-xdg-current-desktop-legacy 2014-10-20 14:28:16 +0000
-@@ -0,0 +1,2 @@
-+#!/bin/sh
-+./src/dbus-env ./src/test-runner xdg-current-desktop-legacy test-gobject-greeter
-