]> rtime.felk.cvut.cz Git - sojka/debian/lightdm.git/blob - debian/patches/03_use-desktopnames-properties.patch
upload
[sojka/debian/lightdm.git] / debian / patches / 03_use-desktopnames-properties.patch
1 --- lightdm/src/seat.c  2014-09-30 03:33:38 +0000
2 +++ lightdm/src/seat.c  2014-10-20 14:28:16 +0000
3 @@ -848,14 +848,19 @@
4  static void
5  configure_session (Session *session, SessionConfig *config, const gchar *session_name, const gchar *language)
6  {
7 -    const gchar *desktop_name;
8 +    gchar **desktop_names;
9  
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);
14 -    if (desktop_name)
15 -        session_set_env (session, "XDG_CURRENT_DESKTOP", desktop_name);
16 +    desktop_names = session_config_get_desktop_names (config);
17 +    if (desktop_names)
18 +    {
19 +        gchar *value;
20 +        value = g_strjoinv (":", desktop_names);
21 +        session_set_env (session, "XDG_CURRENT_DESKTOP", value);
22 +        g_free (value);
23 +    }
24      if (language && language[0] != '\0')
25      {
26          session_set_env (session, "LANG", language);
27
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
30 @@ -16,8 +16,8 @@
31      /* Session type */
32      gchar *session_type;
33  
34 -    /* Desktop name */
35 -    gchar *desktop_name;
36 +    /* Desktop names */
37 +    gchar **desktop_names;
38  
39      /* Command to run */
40      gchar *command;
41 @@ -53,7 +53,20 @@
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);
46 +
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)
49 +    {
50 +        gchar *name;
51 +
52 +        name = g_key_file_get_string (desktop_file, G_KEY_FILE_DESKTOP_GROUP, "X-LightDM-DesktopName", NULL);
53 +        if (name)
54 +        {
55 +            config->priv->desktop_names = g_malloc (sizeof (gchar *) * 2);
56 +            config->priv->desktop_names[0] = name;
57 +            config->priv->desktop_names[1] = NULL;
58 +        }
59 +    }
60      config->priv->compositor_command = g_key_file_get_string (desktop_file, G_KEY_FILE_DESKTOP_GROUP, "X-LightDM-System-Compositor-Command", NULL);
61  
62      g_key_file_free (desktop_file);
63 @@ -75,11 +88,11 @@
64      return config->priv->session_type;
65  }
66  
67 -const gchar *
68 -session_config_get_desktop_name (SessionConfig *config)
69 +gchar **
70 +session_config_get_desktop_names (SessionConfig *config)
71  {
72      g_return_val_if_fail (config != NULL, NULL);
73 -    return config->priv->desktop_name;
74 +    return config->priv->desktop_names;
75  }
76  
77  const gchar *
78 @@ -101,7 +114,7 @@
79      SessionConfig *self = SESSION_CONFIG (object);
80  
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);
86  
87
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
90 @@ -42,7 +42,7 @@
91  
92  const gchar *session_config_get_session_type (SessionConfig *config);
93  
94 -const gchar *session_config_get_desktop_name (SessionConfig *config);
95 +gchar **session_config_get_desktop_names (SessionConfig *config);
96  
97  const gchar *session_config_get_compositor_command (SessionConfig *config);
98  
99
100 --- lightdm/tests/Makefile.am   2014-09-30 03:33:38 +0000
101 +++ lightdm/tests/Makefile.am   2014-10-20 14:28:16 +0000
102 @@ -56,6 +56,7 @@
103         test-login-guest-session-config \
104         test-group-membership \
105         test-xdg-current-desktop \
106 +       test-xdg-current-desktop-legacy \
107         test-xdg-seat \
108         test-language-env \
109         test-session-stdout \
110 @@ -339,6 +340,7 @@
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 \
118 @@ -543,6 +545,7 @@
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 \
126
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
130 @@ -0,0 +1,5 @@
131 +[Desktop Entry]
132 +Name=Test Session
133 +Comment=LightDM test session
134 +Exec=test-session
135 +X-LightDM-DesktopName=TestDesktop
136
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
140 @@ -2,4 +2,4 @@
141  Name=Test Session
142  Comment=LightDM test session
143  Exec=test-session
144 -X-LightDM-DesktopName=TestDesktop
145 +DesktopNames=TestDesktop1;TestDesktop2;
146
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
150 @@ -0,0 +1,30 @@
151 +#
152 +# Check XDG_CURRENT_DESKTOP is set for sessions that support it using the legacy key name
153 +#
154 +
155 +[SeatDefaults]
156 +autologin-user=have-password1
157 +user-session=named-legacy
158 +
159 +#?*START-DAEMON
160 +#?RUNNER DAEMON-START
161 +
162 +# X server starts
163 +#?XSERVER-0 START VT=7 SEAT=seat0
164 +
165 +# Daemon connects when X server is ready
166 +#?*XSERVER-0 INDICATE-READY
167 +#?XSERVER-0 INDICATE-READY
168 +#?XSERVER-0 ACCEPT-CONNECT
169 +
170 +# Session starts
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
175 +
176 +# Cleanup
177 +#?*STOP-DAEMON
178 +#?SESSION-X-0 TERMINATE SIGNAL=15
179 +#?XSERVER-0 TERMINATE SIGNAL=15
180 +#?RUNNER DAEMON-EXIT STATUS=0
181
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
185 @@ -18,7 +18,7 @@
186  #?XSERVER-0 ACCEPT-CONNECT
187  
188  # Session starts
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
194
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
198 @@ -0,0 +1,2 @@
199 +#!/bin/sh
200 +./src/dbus-env ./src/test-runner xdg-current-desktop-legacy test-gobject-greeter
201