diff options
Diffstat (limited to 'debian/patches/03_use-desktopnames-properties.patch')
-rw-r--r-- | debian/patches/03_use-desktopnames-properties.patch | 201 |
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 + |