summaryrefslogtreecommitdiff
path: root/debian/patches/03_use-desktopnames-properties.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/03_use-desktopnames-properties.patch')
-rw-r--r--debian/patches/03_use-desktopnames-properties.patch201
1 files changed, 201 insertions, 0 deletions
diff --git a/debian/patches/03_use-desktopnames-properties.patch b/debian/patches/03_use-desktopnames-properties.patch
new file mode 100644
index 0000000..29c6db5
--- /dev/null
+++ b/debian/patches/03_use-desktopnames-properties.patch
@@ -0,0 +1,201 @@
+--- 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
+