diff options
author | root <root@rshg054.dnsready.net> | 2013-10-31 01:12:24 -0700 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2013-10-31 01:12:24 -0700 |
commit | b2a6f1b28b7fa31088cab9a90b0f5ab97948534d (patch) | |
tree | afa7b467e44b704b69c66862852a8c3118b8e308 /community/cinnamon-session | |
parent | 7c151ac5589d3dbef5972f69a62b847ecf565bfa (diff) |
Thu Oct 31 01:09:50 PDT 2013
Diffstat (limited to 'community/cinnamon-session')
-rw-r--r-- | community/cinnamon-session/PKGBUILD | 7 | ||||
-rw-r--r-- | community/cinnamon-session/lightdm_userswitch.patch | 153 |
2 files changed, 5 insertions, 155 deletions
diff --git a/community/cinnamon-session/PKGBUILD b/community/cinnamon-session/PKGBUILD index 21b5a827d..0088d7d87 100644 --- a/community/cinnamon-session/PKGBUILD +++ b/community/cinnamon-session/PKGBUILD @@ -3,7 +3,7 @@ # Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> pkgname=cinnamon-session -pkgver=2.0.1 +pkgver=2.0.3 pkgrel=1 pkgdesc="The Cinnamon Session Handler" arch=(i686 x86_64) @@ -16,7 +16,7 @@ url="https://github.com/linuxmint/cinnamon-session" source=(${pkgname}-${pkgver}.tar.gz::https://github.com/linuxmint/cinnamon-session/archive/${pkgver}.tar.gz remove_sessionmigration.patch timeout.patch) -sha256sums=('e1dd1bc044be28c2849041e7f1cd23b388442c77500a59baf57d244a6d81b88b' +sha256sums=('8934e80839e5b5508c882d7e01f70f1d8b1ea6b33c000591a84359cbedb76b07' 'f3c0bc1a3debfaa686230f19ba371b08dd4645064d90ead0c34f465c7d416736' 'ef421a14814c7858490b3a806568ab4ec8a0dc21d390e94f801771c1261bb24a') @@ -28,6 +28,9 @@ prepare() { # Increase timeout, for slow machines patch -Np1 -i ../timeout.patch + + # Fix screensaver command + sed -i 's/gnome-screensaver-command/cinnamon-screensaver-command/' cinnamon-session/csm-inhibit-dialog.c } build() { diff --git a/community/cinnamon-session/lightdm_userswitch.patch b/community/cinnamon-session/lightdm_userswitch.patch deleted file mode 100644 index 2fc9fe17b..000000000 --- a/community/cinnamon-session/lightdm_userswitch.patch +++ /dev/null @@ -1,153 +0,0 @@ -diff --git a/cinnamon-session/csm-manager.c b/cinnamon-session/csm-manager.c -index e3388b1..a8e63c5 100644 ---- a/cinnamon-session/csm-manager.c -+++ b/cinnamon-session/csm-manager.c -@@ -1097,44 +1097,20 @@ cancel_end_session (CsmManager *manager) - start_phase (manager); - } - -- --static void --manager_switch_user (GdkDisplay *display, -- CsmManager *manager) --{ -- GError *error; -- char *command; -- GAppLaunchContext *context; -- GAppInfo *app; -- -- /* We have to do this here and in request_switch_user() because this -- * function can be called at a later time, not just directly after -- * request_switch_user(). */ -- if (_switch_user_is_locked_down (manager)) { -- g_warning ("Unable to switch user: User switching has been locked down"); -- return; -- } -- -- command = g_strdup_printf ("%s %s", -- MDM_FLEXISERVER_COMMAND, -- MDM_FLEXISERVER_ARGS); -- -- error = NULL; -- context = (GAppLaunchContext*) gdk_display_get_app_launch_context (display); -- app = g_app_info_create_from_commandline (command, MDM_FLEXISERVER_COMMAND, 0, &error); -- -- if (app) { -- g_app_info_launch (app, NULL, context, &error); -- g_object_unref (app); -- } -- -- g_free (command); -- g_object_unref (context); -- -- if (error) { -- g_debug ("CsmManager: Unable to start MDM greeter: %s", error->message); -- g_error_free (error); -- } -+static gboolean -+process_is_running (const char * name) -+{ -+ int num_processes; -+ char * command = g_strdup_printf ("pidof %s | wc -l", name); -+ FILE *fp = popen(command, "r"); -+ fscanf(fp, "%d", &num_processes); -+ pclose(fp); -+ if (num_processes > 0) { -+ return TRUE; -+ } -+ else { -+ return FALSE; -+ } - } - - static gboolean -@@ -1157,7 +1133,7 @@ manager_perhaps_lock (CsmManager *manager) - - /* do this sync to ensure it's on the screen when we start suspending */ - error = NULL; -- ret = g_spawn_command_line_sync ("gnome-screensaver-command --lock", NULL, NULL, NULL, &error); -+ ret = g_spawn_command_line_sync ("cinnamon-screensaver-command --lock", NULL, NULL, NULL, &error); - if (!ret) { - g_warning ("Couldn't lock screen: %s", error->message); - g_error_free (error); -@@ -1165,6 +1141,80 @@ manager_perhaps_lock (CsmManager *manager) - } - - static void -+manager_switch_user (GdkDisplay *display, -+ CsmManager *manager) -+{ -+ GError *error; -+ char *command; -+ GAppLaunchContext *context; -+ GAppInfo *app; -+ -+ /* We have to do this here and in request_switch_user() because this -+ * function can be called at a later time, not just directly after -+ * request_switch_user(). */ -+ if (_switch_user_is_locked_down (manager)) { -+ g_warning ("Unable to switch user: User switching has been locked down"); -+ return; -+ } -+ -+ if (process_is_running("mdm")) { -+ command = g_strdup_printf ("%s %s", -+ MDM_FLEXISERVER_COMMAND, -+ MDM_FLEXISERVER_ARGS); -+ -+ error = NULL; -+ context = (GAppLaunchContext*) gdk_display_get_app_launch_context (display); -+ app = g_app_info_create_from_commandline (command, MDM_FLEXISERVER_COMMAND, 0, &error); -+ -+ if (app) { -+ g_app_info_launch (app, NULL, context, &error); -+ g_object_unref (app); -+ } -+ -+ g_free (command); -+ g_object_unref (context); -+ -+ if (error) { -+ g_debug ("CsmManager: Unable to start MDM greeter: %s", error->message); -+ g_error_free (error); -+ } -+ } -+ else if (process_is_running("lightdm")) { -+ const gchar *xdg_seat_path = g_getenv ("XDG_SEAT_PATH"); -+ if (xdg_seat_path != NULL) { -+ GDBusProxyFlags flags = G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START; -+ GDBusProxy *proxy = NULL; -+ error = NULL; -+ -+ proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM, -+ flags, -+ NULL, -+ "org.freedesktop.DisplayManager", -+ xdg_seat_path, -+ "org.freedesktop.DisplayManager.Seat", -+ NULL, -+ &error); -+ if (proxy != NULL) { -+ manager_perhaps_lock (manager); -+ g_dbus_proxy_call (proxy, -+ "SwitchToGreeter", -+ g_variant_new ("()"), -+ G_DBUS_CALL_FLAGS_NONE, -+ -1, -+ NULL, -+ NULL, -+ NULL); -+ g_object_unref (proxy); -+ } -+ else { -+ g_debug ("GsmManager: Unable to start LightDM greeter: %s", error->message); -+ g_error_free (error); -+ } -+ } -+ } -+} -+ -+static void - manager_attempt_hibernate (CsmManager *manager) - { - if (csm_system_can_hibernate (manager->priv->system)) { |