summaryrefslogtreecommitdiff
path: root/community/cinnamon-session/lightdm_userswitch.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/cinnamon-session/lightdm_userswitch.patch')
-rw-r--r--community/cinnamon-session/lightdm_userswitch.patch153
1 files changed, 0 insertions, 153 deletions
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)) {