summaryrefslogtreecommitdiff
path: root/extra/gnome-settings-daemon
diff options
context:
space:
mode:
Diffstat (limited to 'extra/gnome-settings-daemon')
-rw-r--r--extra/gnome-settings-daemon/screensaver.patch145
-rw-r--r--extra/gnome-settings-daemon/systemd-fallback.patch154
2 files changed, 0 insertions, 299 deletions
diff --git a/extra/gnome-settings-daemon/screensaver.patch b/extra/gnome-settings-daemon/screensaver.patch
deleted file mode 100644
index bbcfe3430..000000000
--- a/extra/gnome-settings-daemon/screensaver.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-From b47e4019a12ac84fba31e1c631d878ce03fa3808 Mon Sep 17 00:00:00 2001
-From: Rui Matos <tiagomatos@gmail.com>
-Date: Wed, 17 Oct 2012 22:44:54 +0000
-Subject: power: Add a watchdog to keep X's builtin screen saver disabled
-
-X's builtin screen saver may activate DPMS. Since we want to activate
-DPMS ourselves according to our own policy we must make sure that X's
-screen saver remains disabled.
-
-This code is a copy of the original found in gs-watcher-x11.c from
-gnome-screensaver which stopped being used in GNOME 3.6.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=686339
----
-diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
-index 0e06495..070cf32 100644
---- a/plugins/power/gsd-power-manager.c
-+++ b/plugins/power/gsd-power-manager.c
-@@ -27,6 +27,7 @@
- #include <stdio.h>
- #include <sys/wait.h>
- #include <glib/gi18n.h>
-+#include <gdk/gdkx.h>
- #include <gtk/gtk.h>
- #include <libupower-glib/upower.h>
- #include <libnotify/notify.h>
-@@ -80,6 +81,8 @@
- /* Keep this in sync with gnome-shell */
- #define SCREENSAVER_FADE_TIME 10 /* seconds */
-
-+#define XSCREENSAVER_WATCHDOG_TIMEOUT 120 /* seconds */
-+
- enum {
- GSD_POWER_IDLETIME_NULL_ID,
- GSD_POWER_IDLETIME_DIM_ID,
-@@ -197,6 +200,7 @@ struct GsdPowerManagerPrivate
- GsdPowerIdleMode current_idle_mode;
- guint lid_close_safety_timer_id;
- GtkStatusIcon *status_icon;
-+ guint xscreensaver_watchdog_timer_id;
- };
-
- enum {
-@@ -3621,6 +3625,77 @@ engine_session_active_changed_cb (GnomeSettingsSession *session,
- idle_set_mode (manager, GSD_POWER_IDLE_MODE_NORMAL);
- }
-
-+/* This timer goes off every few minutes, whether the user is idle or not,
-+ to try and clean up anything that has gone wrong.
-+
-+ It calls disable_builtin_screensaver() so that if xset has been used,
-+ or some other program (like xlock) has messed with the XSetScreenSaver()
-+ settings, they will be set back to sensible values (if a server extension
-+ is in use, messing with xlock can cause the screensaver to never get a wakeup
-+ event, and could cause monitor power-saving to occur, and all manner of
-+ heinousness.)
-+
-+ This code was originally part of gnome-screensaver, see
-+ http://git.gnome.org/browse/gnome-screensaver/tree/src/gs-watcher-x11.c?id=fec00b12ec46c86334cfd36b37771cc4632f0d4d#n530
-+ */
-+static gboolean
-+disable_builtin_screensaver (gpointer unused)
-+{
-+ int current_server_timeout, current_server_interval;
-+ int current_prefer_blank, current_allow_exp;
-+ int desired_server_timeout, desired_server_interval;
-+ int desired_prefer_blank, desired_allow_exp;
-+
-+ XGetScreenSaver (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-+ &current_server_timeout,
-+ &current_server_interval,
-+ &current_prefer_blank,
-+ &current_allow_exp);
-+
-+ desired_server_timeout = current_server_timeout;
-+ desired_server_interval = current_server_interval;
-+ desired_prefer_blank = current_prefer_blank;
-+ desired_allow_exp = current_allow_exp;
-+
-+ desired_server_interval = 0;
-+
-+ /* I suspect (but am not sure) that DontAllowExposures might have
-+ something to do with powering off the monitor as well, at least
-+ on some systems that don't support XDPMS? Who know... */
-+ desired_allow_exp = AllowExposures;
-+
-+ /* When we're not using an extension, set the server-side timeout to 0,
-+ so that the server never gets involved with screen blanking, and we
-+ do it all ourselves. (However, when we *are* using an extension,
-+ we tell the server when to notify us, and rather than blanking the
-+ screen, the server will send us an X event telling us to blank.)
-+ */
-+ desired_server_timeout = 0;
-+
-+ if (desired_server_timeout != current_server_timeout
-+ || desired_server_interval != current_server_interval
-+ || desired_prefer_blank != current_prefer_blank
-+ || desired_allow_exp != current_allow_exp) {
-+
-+ g_debug ("disabling server builtin screensaver:"
-+ " (xset s %d %d; xset s %s; xset s %s)",
-+ desired_server_timeout,
-+ desired_server_interval,
-+ (desired_prefer_blank ? "blank" : "noblank"),
-+ (desired_allow_exp ? "expose" : "noexpose"));
-+
-+ XSetScreenSaver (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-+ desired_server_timeout,
-+ desired_server_interval,
-+ desired_prefer_blank,
-+ desired_allow_exp);
-+
-+ XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE);
-+ }
-+
-+ return TRUE;
-+}
-+
- gboolean
- gsd_power_manager_start (GsdPowerManager *manager,
- GError **error)
-@@ -3778,6 +3853,9 @@ gsd_power_manager_start (GsdPowerManager *manager,
- /* set the initial dim time that can adapt for the user */
- refresh_idle_dim_settings (manager);
-
-+ manager->priv->xscreensaver_watchdog_timer_id = g_timeout_add_seconds (XSCREENSAVER_WATCHDOG_TIMEOUT,
-+ disable_builtin_screensaver,
-+ NULL);
- gnome_settings_profile_end (NULL);
- return TRUE;
- }
-@@ -3829,6 +3907,11 @@ gsd_power_manager_stop (GsdPowerManager *manager)
-
- g_clear_object (&manager->priv->idletime);
- g_clear_object (&manager->priv->status_icon);
-+
-+ if (manager->priv->xscreensaver_watchdog_timer_id > 0) {
-+ g_source_remove (manager->priv->xscreensaver_watchdog_timer_id);
-+ manager->priv->xscreensaver_watchdog_timer_id = 0;
-+ }
- }
-
- static void
---
-cgit v0.9.0.2
diff --git a/extra/gnome-settings-daemon/systemd-fallback.patch b/extra/gnome-settings-daemon/systemd-fallback.patch
deleted file mode 100644
index da0496623..000000000
--- a/extra/gnome-settings-daemon/systemd-fallback.patch
+++ /dev/null
@@ -1,154 +0,0 @@
-commit b9ded09387f0b99ece97baee18595eb9e86a5b9b
-Author: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
-Date: Mon Mar 12 01:52:54 2012 +0100
-
- Fallback to CK if systemd is not available
-
- Be nice to distributions where systemd is optional. This will select
- the code path at runtime depending on whether the system was booted
- using systemd.
-
-diff --git a/configure.ac b/configure.ac
-index 3b4789f..d522852 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -299,7 +299,7 @@ AC_ARG_ENABLE([systemd],
- [with_systemd=$enableval],
- [with_systemd=no])
- if test "$with_systemd" = "yes" ; then
-- PKG_CHECK_MODULES(SYSTEMD, [libsystemd-login])
-+ PKG_CHECK_MODULES(SYSTEMD, [libsystemd-daemon libsystemd-login])
- AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd is used for session tracking])
- SESSION_TRACKING=systemd
- else
-diff --git a/gnome-settings-daemon/gnome-settings-session.c b/gnome-settings-daemon/gnome-settings-session.c
-index 5786300..83fe21e 100644
---- a/gnome-settings-daemon/gnome-settings-session.c
-+++ b/gnome-settings-daemon/gnome-settings-session.c
-@@ -30,6 +30,7 @@
- #include "gnome-settings-session.h"
-
- #ifdef HAVE_SYSTEMD
-+#include <systemd/sd-daemon.h>
- #include <systemd/sd-login.h>
-
- typedef struct
-@@ -130,10 +131,9 @@ struct GnomeSettingsSessionPrivate
- {
- #ifdef HAVE_SYSTEMD
- GSource *sd_source;
--#else
-+#endif
- GDBusProxy *proxy_session;
- GCancellable *cancellable;
--#endif
- gchar *session_id;
- GnomeSettingsSessionState state;
- };
-@@ -237,7 +237,7 @@ sessions_changed (gpointer user_data)
- return TRUE;
- }
-
--#else /* HAVE_SYSTEMD */
-+#endif /* HAVE_SYSTEMD */
-
- static void
- gnome_settings_session_proxy_signal_cb (GDBusProxy *proxy,
-@@ -371,22 +371,25 @@ got_manager_proxy_cb (GObject *source_object, GAsyncResult *res, gpointer user_d
- g_object_unref (proxy_manager);
- }
-
--#endif /* HAVE_SYSTEMD */
--
- static void
- gnome_settings_session_init (GnomeSettingsSession *session)
- {
- session->priv = GNOME_SETTINGS_SESSION_GET_PRIVATE (session);
-
- #ifdef HAVE_SYSTEMD
-- sd_pid_get_session (getpid(), &session->priv->session_id);
-+ session->priv->sd_source = NULL;
-+
-+ if (sd_booted () > 0) {
-+ sd_pid_get_session (getpid(), &session->priv->session_id);
-
-- session->priv->sd_source = sd_source_new ();
-- g_source_set_callback (session->priv->sd_source, sessions_changed, session, NULL);
-- g_source_attach (session->priv->sd_source, NULL);
-+ session->priv->sd_source = sd_source_new ();
-+ g_source_set_callback (session->priv->sd_source, sessions_changed, session, NULL);
-+ g_source_attach (session->priv->sd_source, NULL);
-
-- sessions_changed (session);
--#else
-+ sessions_changed (session);
-+ return;
-+ }
-+#endif
- session->priv->cancellable = g_cancellable_new ();
-
- /* connect to ConsoleKit */
-@@ -399,7 +402,6 @@ gnome_settings_session_init (GnomeSettingsSession *session)
- session->priv->cancellable,
- got_manager_proxy_cb,
- session);
--#endif
- }
-
- static void
-@@ -415,15 +417,17 @@ gnome_settings_session_finalize (GObject *object)
- if (session->priv->sd_source != NULL) {
- g_source_destroy (session->priv->sd_source);
- g_source_unref (session->priv->sd_source);
-+ goto out;
- }
--#else
-+#endif
-+
- g_cancellable_cancel (session->priv->cancellable);
-
- if (session->priv->proxy_session != NULL)
- g_object_unref (session->priv->proxy_session);
- g_object_unref (session->priv->cancellable);
--#endif
-
-+out:
- G_OBJECT_CLASS (gnome_settings_session_parent_class)->finalize (object);
- }
-
-diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
-index 8db04e5..9883d76 100644
---- a/plugins/power/gsd-power-manager.c
-+++ b/plugins/power/gsd-power-manager.c
-@@ -2031,7 +2031,7 @@ systemd_stop (void)
- g_object_unref (bus);
- }
-
--#else
-+#endif
-
- static void
- consolekit_stop_cb (GObject *source_object,
-@@ -2081,7 +2081,6 @@ consolekit_stop (void)
- consolekit_stop_cb, NULL);
- g_object_unref (proxy);
- }
--#endif
-
- static void
- upower_sleep_cb (GObject *source_object,
-@@ -2135,10 +2134,11 @@ do_power_action_type (GsdPowerManager *manager,
- * hibernate is not available and is marginally better
- * than just powering down the computer mid-write */
- #ifdef HAVE_SYSTEMD
-- systemd_stop ();
--#else
-- consolekit_stop ();
-+ if (sd_booted () > 0)
-+ systemd_stop ();
-+ else
- #endif
-+ consolekit_stop ();
- break;
- case GSD_POWER_ACTION_BLANK:
- ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,