[gnome-settings-daemon] actually use the new patch
Matthias Clasen
mclasen at fedoraproject.org
Wed Oct 3 19:52:51 UTC 2012
commit 2c35e6b1d531dc0a73aaf6f7ab42ece61467cec4
Author: Matthias Clasen <mclasen at redhat.com>
Date: Wed Oct 3 15:52:40 2012 -0400
actually use the new patch
...edia-keys-Use-logind-for-suspending-and-r.patch | 56 +++++++++++--------
gnome-settings-daemon.spec | 4 +-
2 files changed, 34 insertions(+), 26 deletions(-)
---
diff --git a/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch b/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch
index 5c321d1..d744eff 100644
--- a/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch
+++ b/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch
@@ -1,4 +1,4 @@
-From 4bf4e9c9dcc1e56b5a058822056d91be7d3a0a36 Mon Sep 17 00:00:00 2001
+From a26f7c5190ebc82f9f17e0446159311377b20d3f Mon Sep 17 00:00:00 2001
From: Richard Hughes <richard at hughsie.com>
Date: Fri, 21 Sep 2012 11:56:53 +0100
Subject: [PATCH] power and media-keys: Use logind for suspending and
@@ -18,8 +18,8 @@ https://bugzilla.gnome.org/show_bug.cgi?id=680689
plugins/common/gsd-power-helper.c | 203 --------
plugins/common/gsd-power-helper.h | 35 --
plugins/media-keys/gsd-media-keys-manager.c | 156 +++++--
- plugins/power/gsd-power-manager.c | 691 +++++++++++++++++++---------
- 5 files changed, 587 insertions(+), 502 deletions(-)
+ plugins/power/gsd-power-manager.c | 699 +++++++++++++++++++---------
+ 5 files changed, 595 insertions(+), 502 deletions(-)
delete mode 100644 plugins/common/gsd-power-helper.c
delete mode 100644 plugins/common/gsd-power-helper.h
@@ -545,7 +545,7 @@ index 9c84d7f..a2f277e 100644
GsdMediaKeysManager *
diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
-index 0e06495..a931061 100644
+index 0e06495..7c120c4 100644
--- a/plugins/power/gsd-power-manager.c
+++ b/plugins/power/gsd-power-manager.c
@@ -1,7 +1,7 @@
@@ -584,7 +584,7 @@ index 0e06495..a931061 100644
/* Keep this in sync with gnome-shell */
#define SCREENSAVER_FADE_TIME 10 /* seconds */
-@@ -190,13 +194,17 @@ struct GsdPowerManagerPrivate
+@@ -190,13 +194,19 @@ struct GsdPowerManagerPrivate
ca_context *canberra_context;
ca_proplist *critical_alert_loop_props;
guint32 critical_alert_timeout_id;
@@ -599,12 +599,14 @@ index 0e06495..a931061 100644
+ /* systemd stuff */
+ GDBusProxy *logind_proxy;
+ gint inhibit_lid_switch_fd;
++ gboolean inhibit_lid_switch_taken;
+ gint inhibit_suspend_fd;
++ gboolean inhibit_suspend_taken;
+ guint inhibit_lid_switch_timer_id;
};
enum {
-@@ -213,8 +221,8 @@ static GIcon *engine_get_icon (GsdPowerManager *manager);
+@@ -213,8 +223,8 @@ static GIcon *engine_get_icon (GsdPowerManager *manager);
static gchar *engine_get_summary (GsdPowerManager *manager);
static void do_power_action_type (GsdPowerManager *manager, GsdPowerActionType action_type);
static void do_lid_closed_action (GsdPowerManager *manager);
@@ -615,7 +617,7 @@ index 0e06495..a931061 100644
G_DEFINE_TYPE (GsdPowerManager, gsd_power_manager, G_TYPE_OBJECT)
-@@ -2044,6 +2052,57 @@ gnome_session_shutdown (void)
+@@ -2044,6 +2054,57 @@ gnome_session_shutdown (void)
}
static void
@@ -673,7 +675,7 @@ index 0e06495..a931061 100644
do_power_action_type (GsdPowerManager *manager,
GsdPowerActionType action_type)
{
-@@ -2052,19 +2111,19 @@ do_power_action_type (GsdPowerManager *manager,
+@@ -2052,19 +2113,19 @@ do_power_action_type (GsdPowerManager *manager,
switch (action_type) {
case GSD_POWER_ACTION_SUSPEND:
@@ -696,7 +698,7 @@ index 0e06495..a931061 100644
break;
case GSD_POWER_ACTION_BLANK:
ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
-@@ -2136,85 +2195,20 @@ upower_kbd_toggle (GsdPowerManager *manager,
+@@ -2136,85 +2197,20 @@ upower_kbd_toggle (GsdPowerManager *manager,
return ret;
}
@@ -792,7 +794,7 @@ index 0e06495..a931061 100644
}
/* Sets up a timer to be triggered some seconds after closing the laptop lid
-@@ -2222,82 +2216,73 @@ lid_close_safety_timer_cb (GsdPowerManager *manager)
+@@ -2222,82 +2218,73 @@ lid_close_safety_timer_cb (GsdPowerManager *manager)
* again in the timeout handler to see if we can suspend then.
*/
static void
@@ -908,7 +910,7 @@ index 0e06495..a931061 100644
/* play a sound, using sounds from the naming spec */
ca_context_play (manager->priv->canberra_context, 0,
CA_PROP_EVENT_ID, "lid-close",
-@@ -2305,21 +2290,22 @@ do_lid_closed_action (GsdPowerManager *manager)
+@@ -2305,21 +2292,22 @@ do_lid_closed_action (GsdPowerManager *manager)
CA_PROP_EVENT_DESCRIPTION, _("Lid has been closed"),
NULL);
@@ -941,7 +943,7 @@ index 0e06495..a931061 100644
static void
up_client_changed_cb (UpClient *client, GsdPowerManager *manager)
{
-@@ -2339,6 +2325,7 @@ up_client_changed_cb (UpClient *client, GsdPowerManager *manager)
+@@ -2339,6 +2327,7 @@ up_client_changed_cb (UpClient *client, GsdPowerManager *manager)
if (manager->priv->lid_is_closed == tmp)
return;
manager->priv->lid_is_closed = tmp;
@@ -949,7 +951,7 @@ index 0e06495..a931061 100644
/* fake a keypress */
if (tmp)
-@@ -3290,30 +3277,6 @@ gsd_power_manager_class_init (GsdPowerManagerClass *klass)
+@@ -3290,30 +3279,6 @@ gsd_power_manager_class_init (GsdPowerManagerClass *klass)
}
static void
@@ -980,7 +982,7 @@ index 0e06495..a931061 100644
idle_dbus_signal_cb (GDBusProxy *proxy,
const gchar *sender_name,
const gchar *signal_name,
-@@ -3465,75 +3428,38 @@ out:
+@@ -3465,75 +3430,38 @@ out:
}
static void
@@ -1080,7 +1082,7 @@ index 0e06495..a931061 100644
}
static void
-@@ -3621,6 +3547,283 @@ engine_session_active_changed_cb (GnomeSettingsSession *session,
+@@ -3621,6 +3549,287 @@ engine_session_active_changed_cb (GnomeSettingsSession *session,
idle_set_mode (manager, GSD_POWER_IDLE_MODE_NORMAL);
}
@@ -1118,11 +1120,12 @@ index 0e06495..a931061 100644
+{
+ GVariant *params;
+
-+ if (manager->priv->inhibit_lid_switch_fd != -1) {
++ if (manager->priv->inhibit_lid_switch_taken) {
+ g_debug ("already inhibited lid-switch");
+ return;
+ }
+ g_debug ("Adding lid switch system inhibitor");
++ manager->priv->inhibit_lid_switch_taken = TRUE;
+
+ params = g_variant_new ("(ssss)",
+ "handle-lid-switch",
@@ -1150,6 +1153,7 @@ index 0e06495..a931061 100644
+ g_debug ("Removing lid switch system inhibitor");
+ close (manager->priv->inhibit_lid_switch_fd);
+ manager->priv->inhibit_lid_switch_fd = -1;
++ manager->priv->inhibit_lid_switch_taken = FALSE;
+}
+
+static void
@@ -1188,11 +1192,12 @@ index 0e06495..a931061 100644
+static void
+inhibit_suspend (GsdPowerManager *manager)
+{
-+ if (manager->priv->inhibit_suspend_fd != -1) {
++ if (manager->priv->inhibit_suspend_taken) {
+ g_debug ("already inhibited lid-switch");
+ return;
+ }
+ g_debug ("Adding suspend delay inhibitor");
++ manager->priv->inhibit_suspend_taken = TRUE;
+ g_dbus_proxy_call_with_unix_fd_list (manager->priv->logind_proxy,
+ "Inhibit",
+ g_variant_new ("(ssss)",
@@ -1218,6 +1223,7 @@ index 0e06495..a931061 100644
+ g_debug ("Removing suspend delay inhibitor");
+ close (manager->priv->inhibit_suspend_fd);
+ manager->priv->inhibit_suspend_fd = -1;
++ manager->priv->inhibit_suspend_taken = TRUE;
+}
+
+static gboolean
@@ -1364,7 +1370,7 @@ index 0e06495..a931061 100644
gboolean
gsd_power_manager_start (GsdPowerManager *manager,
GError **error)
-@@ -3630,6 +3833,25 @@ gsd_power_manager_start (GsdPowerManager *manager,
+@@ -3630,6 +3839,25 @@ gsd_power_manager_start (GsdPowerManager *manager,
g_debug ("Starting power manager");
gnome_settings_profile_start (NULL);
@@ -1390,7 +1396,7 @@ index 0e06495..a931061 100644
/* track the active session */
manager->priv->session = gnome_settings_session_new ();
g_signal_connect (manager->priv->session, "notify::state",
-@@ -3644,10 +3866,6 @@ gsd_power_manager_start (GsdPowerManager *manager,
+@@ -3644,10 +3872,6 @@ gsd_power_manager_start (GsdPowerManager *manager,
G_CALLBACK (engine_settings_key_changed_cb), manager);
manager->priv->settings_screensaver = g_settings_new ("org.gnome.desktop.screensaver");
manager->priv->up_client = up_client_new ();
@@ -1401,7 +1407,7 @@ index 0e06495..a931061 100644
manager->priv->lid_is_closed = up_client_get_lid_is_closed (manager->priv->up_client);
g_signal_connect (manager->priv->up_client, "device-added",
G_CALLBACK (engine_device_added_cb), manager);
-@@ -3761,6 +3979,9 @@ gsd_power_manager_start (GsdPowerManager *manager,
+@@ -3761,6 +3985,9 @@ gsd_power_manager_start (GsdPowerManager *manager,
manager->priv->x11_screen = gnome_rr_screen_new (gdk_screen_get_default (), error);
if (manager->priv->x11_screen == NULL)
return FALSE;
@@ -1411,7 +1417,7 @@ index 0e06495..a931061 100644
/* ensure the default dpms timeouts are cleared */
ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
-@@ -3787,6 +4008,11 @@ gsd_power_manager_stop (GsdPowerManager *manager)
+@@ -3787,6 +4014,11 @@ gsd_power_manager_stop (GsdPowerManager *manager)
{
g_debug ("Stopping power manager");
@@ -1423,7 +1429,7 @@ index 0e06495..a931061 100644
if (manager->priv->bus_cancellable != NULL) {
g_cancellable_cancel (manager->priv->bus_cancellable);
g_object_unref (manager->priv->bus_cancellable);
-@@ -3798,8 +4024,6 @@ gsd_power_manager_stop (GsdPowerManager *manager)
+@@ -3798,8 +4030,6 @@ gsd_power_manager_stop (GsdPowerManager *manager)
manager->priv->introspection_data = NULL;
}
@@ -1432,7 +1438,7 @@ index 0e06495..a931061 100644
g_signal_handlers_disconnect_by_data (manager->priv->up_client, manager);
g_clear_object (&manager->priv->connection);
-@@ -3807,6 +4031,17 @@ gsd_power_manager_stop (GsdPowerManager *manager)
+@@ -3807,6 +4037,19 @@ gsd_power_manager_stop (GsdPowerManager *manager)
g_clear_object (&manager->priv->settings);
g_clear_object (&manager->priv->settings_screensaver);
g_clear_object (&manager->priv->up_client);
@@ -1440,17 +1446,19 @@ index 0e06495..a931061 100644
+ if (manager->priv->inhibit_lid_switch_fd != -1) {
+ close (manager->priv->inhibit_lid_switch_fd);
+ manager->priv->inhibit_lid_switch_fd = -1;
++ manager->priv->inhibit_lid_switch_taken = FALSE;
+ }
+ if (manager->priv->inhibit_suspend_fd != -1) {
+ close (manager->priv->inhibit_suspend_fd);
+ manager->priv->inhibit_suspend_fd = -1;
++ manager->priv->inhibit_suspend_taken = FALSE;
+ }
+
+ g_clear_object (&manager->priv->logind_proxy);
g_clear_object (&manager->priv->x11_screen);
g_ptr_array_unref (manager->priv->devices_array);
-@@ -3835,6 +4070,8 @@ static void
+@@ -3835,6 +4078,8 @@ static void
gsd_power_manager_init (GsdPowerManager *manager)
{
manager->priv = GSD_POWER_MANAGER_GET_PRIVATE (manager);
diff --git a/gnome-settings-daemon.spec b/gnome-settings-daemon.spec
index 036daee..b75e106 100644
--- a/gnome-settings-daemon.spec
+++ b/gnome-settings-daemon.spec
@@ -1,6 +1,6 @@
Name: gnome-settings-daemon
Version: 3.6.0
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: The daemon sharing settings from GNOME to GTK+/KDE applications
Group: System Environment/Daemons
@@ -257,7 +257,7 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
%{_datadir}/dbus-1/interfaces/org.gnome.SettingsDaemonUpdates.xml
%changelog
-* Wed Oct 3 2012 Matthias Clasen <mclasen at redhat.com> - 3.6.0-4
+* Wed Oct 3 2012 Matthias Clasen <mclasen at redhat.com> - 3.6.0-5
- Fix an inhibitor leak in the previous patch
* Tue Oct 2 2012 Matthias Clasen <mclasen at redhat.com> - 3.6.0-3
More information about the scm-commits
mailing list