1 --- lightdm/src/seat.c 2014-09-30 03:33:38 +0000
2 +++ lightdm/src/seat.c 2014-10-20 14:28:16 +0000
5 configure_session (Session *session, SessionConfig *config, const gchar *session_name, const gchar *language)
7 - const gchar *desktop_name;
8 + gchar **desktop_names;
10 session_set_config (session, config);
11 session_set_env (session, "DESKTOP_SESSION", session_name);
12 session_set_env (session, "GDMSESSION", session_name);
13 - desktop_name = session_config_get_desktop_name (config);
15 - session_set_env (session, "XDG_CURRENT_DESKTOP", desktop_name);
16 + desktop_names = session_config_get_desktop_names (config);
20 + value = g_strjoinv (":", desktop_names);
21 + session_set_env (session, "XDG_CURRENT_DESKTOP", value);
24 if (language && language[0] != '\0')
26 session_set_env (session, "LANG", language);
28 --- lightdm/src/session-config.c 2014-09-12 00:04:28 +0000
29 +++ lightdm/src/session-config.c 2014-10-20 14:28:16 +0000
35 - gchar *desktop_name;
37 + gchar **desktop_names;
42 config->priv->session_type = g_key_file_get_string (desktop_file, G_KEY_FILE_DESKTOP_GROUP, "X-LightDM-Session-Type", NULL);
43 if (!config->priv->session_type)
44 config->priv->session_type = g_strdup ("x");
45 - config->priv->desktop_name = g_key_file_get_string (desktop_file, G_KEY_FILE_DESKTOP_GROUP, "X-LightDM-DesktopName", NULL);
47 + config->priv->desktop_names = g_key_file_get_string_list (desktop_file, G_KEY_FILE_DESKTOP_GROUP, "DesktopNames", NULL, NULL);
48 + if (!config->priv->desktop_names)
52 + name = g_key_file_get_string (desktop_file, G_KEY_FILE_DESKTOP_GROUP, "X-LightDM-DesktopName", NULL);
55 + config->priv->desktop_names = g_malloc (sizeof (gchar *) * 2);
56 + config->priv->desktop_names[0] = name;
57 + config->priv->desktop_names[1] = NULL;
60 config->priv->compositor_command = g_key_file_get_string (desktop_file, G_KEY_FILE_DESKTOP_GROUP, "X-LightDM-System-Compositor-Command", NULL);
62 g_key_file_free (desktop_file);
64 return config->priv->session_type;
68 -session_config_get_desktop_name (SessionConfig *config)
70 +session_config_get_desktop_names (SessionConfig *config)
72 g_return_val_if_fail (config != NULL, NULL);
73 - return config->priv->desktop_name;
74 + return config->priv->desktop_names;
79 SessionConfig *self = SESSION_CONFIG (object);
81 g_free (self->priv->session_type);
82 - g_free (self->priv->desktop_name);
83 + g_strfreev (self->priv->desktop_names);
84 g_free (self->priv->command);
85 g_free (self->priv->compositor_command);
88 --- lightdm/src/session-config.h 2014-09-12 00:04:28 +0000
89 +++ lightdm/src/session-config.h 2014-10-20 14:28:16 +0000
92 const gchar *session_config_get_session_type (SessionConfig *config);
94 -const gchar *session_config_get_desktop_name (SessionConfig *config);
95 +gchar **session_config_get_desktop_names (SessionConfig *config);
97 const gchar *session_config_get_compositor_command (SessionConfig *config);
100 --- lightdm/tests/Makefile.am 2014-09-30 03:33:38 +0000
101 +++ lightdm/tests/Makefile.am 2014-10-20 14:28:16 +0000
103 test-login-guest-session-config \
104 test-group-membership \
105 test-xdg-current-desktop \
106 + test-xdg-current-desktop-legacy \
109 test-session-stdout \
111 data/sessions/mir.desktop \
112 data/sessions/mir-container.desktop \
113 data/sessions/named.desktop \
114 + data/sessions/named-legacy.desktop \
115 data/sessions/surfaceflinger.desktop \
116 scripts/0-additional.conf \
117 scripts/1-additional.conf \
119 scripts/vnc-open-file-descriptors.conf \
120 scripts/xauthority.conf \
121 scripts/xdg-current-desktop.conf \
122 + scripts/xdg-current-desktop-legacy.conf \
123 scripts/xdg-seat.conf \
124 scripts/xdmcp-client.conf \
125 scripts/xdmcp-server-login.conf \
127 === added file 'tests/data/sessions/named-legacy.desktop'
128 --- lightdm/tests/data/sessions/named-legacy.desktop 1970-01-01 00:00:00 +0000
129 +++ lightdm/tests/data/sessions/named-legacy.desktop 2014-10-20 14:28:16 +0000
133 +Comment=LightDM test session
135 +X-LightDM-DesktopName=TestDesktop
137 === modified file 'tests/data/sessions/named.desktop'
138 --- lightdm/tests/data/sessions/named.desktop 2013-08-19 00:21:19 +0000
139 +++ lightdm/tests/data/sessions/named.desktop 2014-10-20 14:28:16 +0000
142 Comment=LightDM test session
144 -X-LightDM-DesktopName=TestDesktop
145 +DesktopNames=TestDesktop1;TestDesktop2;
147 === added file 'tests/scripts/xdg-current-desktop-legacy.conf'
148 --- lightdm/tests/scripts/xdg-current-desktop-legacy.conf 1970-01-01 00:00:00 +0000
149 +++ lightdm/tests/scripts/xdg-current-desktop-legacy.conf 2014-10-20 14:28:16 +0000
152 +# Check XDG_CURRENT_DESKTOP is set for sessions that support it using the legacy key name
156 +autologin-user=have-password1
157 +user-session=named-legacy
160 +#?RUNNER DAEMON-START
163 +#?XSERVER-0 START VT=7 SEAT=seat0
165 +# Daemon connects when X server is ready
166 +#?*XSERVER-0 INDICATE-READY
167 +#?XSERVER-0 INDICATE-READY
168 +#?XSERVER-0 ACCEPT-CONNECT
171 +#?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
172 +#?LOGIN1 ACTIVATE-SESSION SESSION=c0
173 +#?XSERVER-0 ACCEPT-CONNECT
174 +#?SESSION-X-0 CONNECT-XSERVER
178 +#?SESSION-X-0 TERMINATE SIGNAL=15
179 +#?XSERVER-0 TERMINATE SIGNAL=15
180 +#?RUNNER DAEMON-EXIT STATUS=0
182 === modified file 'tests/scripts/xdg-current-desktop.conf'
183 --- lightdm/tests/scripts/xdg-current-desktop.conf 2014-03-17 18:33:02 +0000
184 +++ lightdm/tests/scripts/xdg-current-desktop.conf 2014-10-20 14:28:16 +0000
186 #?XSERVER-0 ACCEPT-CONNECT
189 -#?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
190 +#?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
191 #?LOGIN1 ACTIVATE-SESSION SESSION=c0
192 #?XSERVER-0 ACCEPT-CONNECT
193 #?SESSION-X-0 CONNECT-XSERVER
195 === added file 'tests/test-xdg-current-desktop-legacy'
196 --- lightdm/tests/test-xdg-current-desktop-legacy 1970-01-01 00:00:00 +0000
197 +++ lightdm/tests/test-xdg-current-desktop-legacy 2014-10-20 14:28:16 +0000
200 +./src/dbus-env ./src/test-runner xdg-current-desktop-legacy test-gobject-greeter