summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Rostovtsev <tetromino@gmail.com>2011-09-30 18:28:36 -0400
committerAlexandre Rostovtsev <tetromino@gmail.com>2011-09-30 18:28:36 -0400
commitff9a51d86e029d057d82a44955af2328af5c000c (patch)
treedd78cd3e40badff78740e1e6c6cc7291cc5c5b8f /gnome-base/gnome-settings-daemon/files
parentnet-libs/webkit-gtk, dev-libs/gjs: moved to tree (diff)
downloadgnome-ff9a51d86e029d057d82a44955af2328af5c000c.tar.gz
gnome-ff9a51d86e029d057d82a44955af2328af5c000c.tar.bz2
gnome-ff9a51d86e029d057d82a44955af2328af5c000c.zip
gnome-base/gnome-settings-daemon: lots of patches
Add seven patches from upstream fixing various breakage in backlight, media key, and power management code. Probably addresses bug #385055 (and maybe #385063 too).
Diffstat (limited to 'gnome-base/gnome-settings-daemon/files')
-rw-r--r--gnome-base/gnome-settings-daemon/files/3.2.0/0001-power-Don-t-restore-the-brightness-if-it-s-never-bee.patch54
-rw-r--r--gnome-base/gnome-settings-daemon/files/3.2.0/0002-power-Fix-two-small-reference-leaks-when-using-the-D.patch35
-rw-r--r--gnome-base/gnome-settings-daemon/files/3.2.0/0003-common-Remove-left-over-debug.patch27
-rw-r--r--gnome-base/gnome-settings-daemon/files/3.2.0/0004-power-media-keys-xrandr-Use-a-GCancellable-for-g_bus.patch168
-rw-r--r--gnome-base/gnome-settings-daemon/files/3.2.0/0005-power-Do-not-sleep-on-idle-by-default.patch44
-rw-r--r--gnome-base/gnome-settings-daemon/files/3.2.0/0006-media-keys-Don-t-assert-if-the-user-sets-the-button-.patch38
-rw-r--r--gnome-base/gnome-settings-daemon/files/3.2.0/0007-media-keys-Don-t-assert-if-the-user-sets-the-button-.patch26
7 files changed, 392 insertions, 0 deletions
diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0001-power-Don-t-restore-the-brightness-if-it-s-never-bee.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0001-power-Don-t-restore-the-brightness-if-it-s-never-bee.patch
new file mode 100644
index 00000000..5eafa269
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0001-power-Don-t-restore-the-brightness-if-it-s-never-bee.patch
@@ -0,0 +1,54 @@
+From 7e9ff82377c6ada10554037c873f53b0fd8fe949 Mon Sep 17 00:00:00 2001
+From: Richard Hughes <richard@hughsie.com>
+Date: Fri, 23 Sep 2011 12:21:51 +0100
+Subject: [PATCH 01/10] power: Don't restore the brightness if it's never been
+ set
+
+---
+ plugins/power/gsd-power-manager.c | 23 +++++++++++++----------
+ 1 files changed, 13 insertions(+), 10 deletions(-)
+
+diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
+index b528a97..f118642 100644
+--- a/plugins/power/gsd-power-manager.c
++++ b/plugins/power/gsd-power-manager.c
+@@ -2743,15 +2743,18 @@ idle_set_mode (GsdPowerManager *manager, GsdPowerIdleMode mode)
+ g_clear_error (&error);
+ }
+
+- ret = backlight_set_abs (manager,
+- manager->priv->pre_dim_brightness,
+- &error);
+- if (!ret) {
+- g_warning ("failed to restore backlight to %i: %s",
+- manager->priv->pre_dim_brightness,
+- error->message);
+- g_error_free (error);
+- return;
++ /* reset brightness if we dimmed */
++ if (manager->priv->pre_dim_brightness >= 0) {
++ ret = backlight_set_abs (manager,
++ manager->priv->pre_dim_brightness,
++ &error);
++ if (!ret) {
++ g_warning ("failed to restore backlight to %i: %s",
++ manager->priv->pre_dim_brightness,
++ error->message);
++ g_error_free (error);
++ return;
++ }
+ }
+ }
+ }
+@@ -3298,7 +3301,7 @@ gsd_power_manager_start (GsdPowerManager *manager,
+ manager);
+
+ manager->priv->kbd_brightness_old = -1;
+- manager->priv->pre_dim_brightness = 100;
++ manager->priv->pre_dim_brightness = -1;
+ manager->priv->settings = g_settings_new (GSD_POWER_SETTINGS_SCHEMA);
+ g_signal_connect (manager->priv->settings, "changed",
+ G_CALLBACK (engine_settings_key_changed_cb), manager);
+--
+1.7.6.1
+
diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0002-power-Fix-two-small-reference-leaks-when-using-the-D.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0002-power-Fix-two-small-reference-leaks-when-using-the-D.patch
new file mode 100644
index 00000000..4ef7b20a
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0002-power-Fix-two-small-reference-leaks-when-using-the-D.patch
@@ -0,0 +1,35 @@
+From f24306a2fa496b6f6f2e7c00173834030882d7d5 Mon Sep 17 00:00:00 2001
+From: Richard Hughes <richard@hughsie.com>
+Date: Mon, 26 Sep 2011 10:06:13 +0100
+Subject: [PATCH 02/10] power: Fix two small reference leaks when using the
+ D-Bus interface
+
+Resolves: https://bugzilla.gnome.org/show_bug.cgi?id=660079
+---
+ plugins/power/gsd-power-manager.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
+index f118642..d786977 100644
+--- a/plugins/power/gsd-power-manager.c
++++ b/plugins/power/gsd-power-manager.c
+@@ -3726,6 +3726,7 @@ handle_method_call_main (GsdPowerManager *manager,
+ value = device_to_variant_blob (device);
+ tuple = g_variant_new_tuple (&value, 1);
+ g_dbus_method_invocation_return_value (invocation, tuple);
++ g_object_unref (device);
+ return;
+ }
+
+@@ -3736,7 +3737,7 @@ handle_method_call_main (GsdPowerManager *manager,
+ builder = g_variant_builder_new (G_VARIANT_TYPE("a(susdut)"));
+
+ /* add each tuple to the array */
+- array = g_ptr_array_ref (manager->priv->devices_array);
++ array = manager->priv->devices_array;
+ for (i=0; i<array->len; i++) {
+ device = g_ptr_array_index (array, i);
+ value = device_to_variant_blob (device);
+--
+1.7.6.1
+
diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0003-common-Remove-left-over-debug.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0003-common-Remove-left-over-debug.patch
new file mode 100644
index 00000000..545d69fe
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0003-common-Remove-left-over-debug.patch
@@ -0,0 +1,27 @@
+From 15d30558108fcdfe4c688b38a06214427801be78 Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Tue, 27 Sep 2011 10:20:21 +0100
+Subject: [PATCH 05/10] common: Remove left-over debug
+
+Spotted by Matthias Clasen <mclasen@redhat.com>
+
+https://bugzilla.gnome.org/show_bug.cgi?id=660073
+---
+ plugins/common/gsd-input-helper.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/plugins/common/gsd-input-helper.c b/plugins/common/gsd-input-helper.c
+index a2a0451..7b605bf 100644
+--- a/plugins/common/gsd-input-helper.c
++++ b/plugins/common/gsd-input-helper.c
+@@ -345,7 +345,6 @@ get_disabled_devices (GdkDeviceManager *manager)
+
+ /* Check whether the device is actually available */
+ device = gdk_x11_device_manager_lookup (manager, device_info[i].id);
+- g_message ("checking whether we have a device for %d: %s", device_info[i].id, device ? "yes" : "no");
+ if (device != NULL)
+ continue;
+
+--
+1.7.6.1
+
diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0004-power-media-keys-xrandr-Use-a-GCancellable-for-g_bus.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0004-power-media-keys-xrandr-Use-a-GCancellable-for-g_bus.patch
new file mode 100644
index 00000000..82c74721
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0004-power-media-keys-xrandr-Use-a-GCancellable-for-g_bus.patch
@@ -0,0 +1,168 @@
+From 573889e0be2f39f894dfaebedf72b6ae4b626554 Mon Sep 17 00:00:00 2001
+From: Rodrigo Moya <rodrigo@gnome-db.org>
+Date: Thu, 29 Sep 2011 11:57:12 +0200
+Subject: [PATCH 07/10] power, media-keys, xrandr: Use a GCancellable for
+ g_bus_get calls so that they can be cancelled
+
+---
+ plugins/media-keys/gsd-media-keys-manager.c | 16 +++++++++++++++-
+ plugins/power/gsd-power-manager.c | 16 +++++++++++++++-
+ plugins/xrandr/gsd-xrandr-manager.c | 16 +++++++++++++++-
+ 3 files changed, 45 insertions(+), 3 deletions(-)
+
+diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
+index c2ddf96..522bf1e 100644
+--- a/plugins/media-keys/gsd-media-keys-manager.c
++++ b/plugins/media-keys/gsd-media-keys-manager.c
+@@ -130,6 +130,7 @@ struct GsdMediaKeysManagerPrivate
+
+ GDBusNodeInfo *introspection_data;
+ GDBusConnection *connection;
++ GCancellable *bus_cancellable;
+ GDBusProxy *xrandr_proxy;
+ GCancellable *cancellable;
+
+@@ -1753,6 +1754,12 @@ gsd_media_keys_manager_stop (GsdMediaKeysManager *manager)
+
+ g_debug ("Stopping media_keys manager");
+
++ if (priv->bus_cancellable != NULL) {
++ g_cancellable_cancel (priv->bus_cancellable);
++ g_object_unref (priv->bus_cancellable);
++ priv->bus_cancellable = NULL;
++ }
++
+ for (ls = priv->screens; ls != NULL; ls = ls->next) {
+ gdk_window_remove_filter (gdk_screen_get_root_window (ls->data),
+ (GdkFilterFunc) acme_filter_events,
+@@ -1980,6 +1987,12 @@ on_bus_gotten (GObject *source_object,
+ GDBusConnection *connection;
+ GError *error = NULL;
+
++ if (manager->priv->bus_cancellable == NULL ||
++ g_cancellable_is_cancelled (manager->priv->bus_cancellable)) {
++ g_warning ("Operation has been cancelled, so not retrieving session bus");
++ return;
++ }
++
+ connection = g_bus_get_finish (res, &error);
+ if (connection == NULL) {
+ g_warning ("Could not get session bus: %s", error->message);
+@@ -2031,10 +2044,11 @@ static void
+ register_manager (GsdMediaKeysManager *manager)
+ {
+ manager->priv->introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, NULL);
++ manager->priv->bus_cancellable = g_cancellable_new ();
+ g_assert (manager->priv->introspection_data != NULL);
+
+ g_bus_get (G_BUS_TYPE_SESSION,
+- NULL,
++ manager->priv->bus_cancellable,
+ (GAsyncReadyCallback) on_bus_gotten,
+ manager);
+ }
+diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
+index d786977..370d90d 100644
+--- a/plugins/power/gsd-power-manager.c
++++ b/plugins/power/gsd-power-manager.c
+@@ -157,6 +157,7 @@ struct GsdPowerManagerPrivate
+ UpClient *up_client;
+ GDBusNodeInfo *introspection_data;
+ GDBusConnection *connection;
++ GCancellable *bus_cancellable;
+ GDBusProxy *upower_proxy;
+ GDBusProxy *upower_kdb_proxy;
+ gint kbd_brightness_now;
+@@ -3454,6 +3455,12 @@ gsd_power_manager_stop (GsdPowerManager *manager)
+ {
+ g_debug ("Stopping power manager");
+
++ if (manager->priv->bus_cancellable != NULL) {
++ g_cancellable_cancel (manager->priv->bus_cancellable);
++ g_object_unref (manager->priv->bus_cancellable);
++ manager->priv->bus_cancellable = NULL;
++ }
++
+ if (manager->priv->introspection_data) {
+ g_dbus_node_info_unref (manager->priv->introspection_data);
+ manager->priv->introspection_data = NULL;
+@@ -3842,6 +3849,12 @@ on_bus_gotten (GObject *source_object,
+ GError *error = NULL;
+ guint i;
+
++ if (manager->priv->bus_cancellable == NULL ||
++ g_cancellable_is_cancelled (manager->priv->bus_cancellable)) {
++ g_warning ("Operation has been cancelled, so not retrieving session bus");
++ return;
++ }
++
+ connection = g_bus_get_finish (res, &error);
+ if (connection == NULL) {
+ g_warning ("Could not get session bus: %s", error->message);
+@@ -3865,10 +3878,11 @@ static void
+ register_manager_dbus (GsdPowerManager *manager)
+ {
+ manager->priv->introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, NULL);
++ manager->priv->bus_cancellable = g_cancellable_new ();
+ g_assert (manager->priv->introspection_data != NULL);
+
+ g_bus_get (G_BUS_TYPE_SESSION,
+- NULL,
++ manager->priv->bus_cancellable,
+ (GAsyncReadyCallback) on_bus_gotten,
+ manager);
+ }
+diff --git a/plugins/xrandr/gsd-xrandr-manager.c b/plugins/xrandr/gsd-xrandr-manager.c
+index 4ccf5d1..8b12ddd 100644
+--- a/plugins/xrandr/gsd-xrandr-manager.c
++++ b/plugins/xrandr/gsd-xrandr-manager.c
+@@ -104,6 +104,7 @@ struct GsdXrandrManagerPrivate
+ GSettings *settings;
+ GDBusNodeInfo *introspection_data;
+ GDBusConnection *connection;
++ GCancellable *bus_cancellable;
+
+ /* fn-F7 status */
+ int current_fn_f7_config; /* -1 if no configs */
+@@ -1899,6 +1900,12 @@ gsd_xrandr_manager_stop (GsdXrandrManager *manager)
+
+ manager->priv->running = FALSE;
+
++ if (manager->priv->bus_cancellable != NULL) {
++ g_cancellable_cancel (manager->priv->bus_cancellable);
++ g_object_unref (manager->priv->bus_cancellable);
++ manager->priv->bus_cancellable = NULL;
++ }
++
+ if (manager->priv->settings != NULL) {
+ g_object_unref (manager->priv->settings);
+ manager->priv->settings = NULL;
+@@ -2066,6 +2073,12 @@ on_bus_gotten (GObject *source_object,
+ GDBusConnection *connection;
+ GError *error = NULL;
+
++ if (manager->priv->bus_cancellable == NULL ||
++ g_cancellable_is_cancelled (manager->priv->bus_cancellable)) {
++ g_warning ("Operation has been cancelled, so not retrieving session bus");
++ return;
++ }
++
+ connection = g_bus_get_finish (res, &error);
+ if (connection == NULL) {
+ g_warning ("Could not get session bus: %s", error->message);
+@@ -2087,10 +2100,11 @@ static void
+ register_manager_dbus (GsdXrandrManager *manager)
+ {
+ manager->priv->introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, NULL);
++ manager->priv->bus_cancellable = g_cancellable_new ();
+ g_assert (manager->priv->introspection_data != NULL);
+
+ g_bus_get (G_BUS_TYPE_SESSION,
+- NULL,
++ manager->priv->bus_cancellable,
+ (GAsyncReadyCallback) on_bus_gotten,
+ manager);
+ }
+--
+1.7.6.1
+
diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0005-power-Do-not-sleep-on-idle-by-default.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0005-power-Do-not-sleep-on-idle-by-default.patch
new file mode 100644
index 00000000..ffad009b
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0005-power-Do-not-sleep-on-idle-by-default.patch
@@ -0,0 +1,44 @@
+From 378e3037ac09b8851ad83261930295f3eceb590c Mon Sep 17 00:00:00 2001
+From: Richard Hughes <richard@hughsie.com>
+Date: Thu, 29 Sep 2011 15:04:22 +0100
+Subject: [PATCH 08/10] power: Do not sleep-on-idle by default
+
+We do not actually read the boolean keys in gnome-settings-daemon due to
+a mixup when the UI was re-designed. We can just change the default of
+the timeout key (that we do read...) to zero to change "never" to be
+the default.
+
+Note: we're not actually going to remove the unused keys from the schema
+like we did in master, otherwise upgrading the g-s-d package whilst
+the control center is open is going to make it explode.
+
+Resolves https://bugzilla.gnome.org/show_bug.cgi?id=660395
+---
+ ...settings-daemon.plugins.power.gschema.xml.in.in | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in.in b/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in.in
+index 665192f..d2d4b48 100644
+--- a/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in.in
++++ b/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in.in
+@@ -46,7 +46,7 @@
+ <description>Whether to put the computer to sleep when inactive on AC power.</description>
+ </key>
+ <key name="sleep-inactive-ac-timeout" type="i">
+- <default>1800</default>
++ <default>0</default>
+ <summary>Sleep timeout computer when on AC</summary>
+ <description>The amount of time in seconds the computer on AC power needs to be inactive before it goes to sleep.</description>
+ </key>
+@@ -61,7 +61,7 @@
+ <description>Whether to put the computer to sleep when inactive on battery power.</description>
+ </key>
+ <key name="sleep-inactive-battery-timeout" type="i">
+- <default>1800</default>
++ <default>0</default>
+ <summary>Sleep timeout computer when on battery</summary>
+ <description>The amount of time in seconds the computer on battery power needs to be inactive before it goes to sleep.</description>
+ </key>
+--
+1.7.6.1
+
diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0006-media-keys-Don-t-assert-if-the-user-sets-the-button-.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0006-media-keys-Don-t-assert-if-the-user-sets-the-button-.patch
new file mode 100644
index 00000000..f4a87751
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0006-media-keys-Don-t-assert-if-the-user-sets-the-button-.patch
@@ -0,0 +1,38 @@
+From df730ed9372fb74a0785afcf18df8da27af81280 Mon Sep 17 00:00:00 2001
+From: Richard Hughes <richard@hughsie.com>
+Date: Fri, 30 Sep 2011 14:48:17 +0100
+Subject: [PATCH 09/10] media-keys: Don't assert if the user sets the
+ 'button-power' action to 'shutdown'
+
+If the user sets the 'button-power' action to 'shutdown' then we want to show
+the interactive session shutdown window and not just assert.
+
+Actually doing the shutdown without warning is a recipe for disaster in case
+the user has _accidentally_ pressed the button...
+---
+ plugins/media-keys/gsd-media-keys-manager.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
+index 522bf1e..b97207a 100644
+--- a/plugins/media-keys/gsd-media-keys-manager.c
++++ b/plugins/media-keys/gsd-media-keys-manager.c
+@@ -1283,6 +1283,7 @@ do_config_power_action (GsdMediaKeysManager *manager,
+ }
+ break;
+ case GSD_POWER_ACTION_INTERACTIVE:
++ case GSD_POWER_ACTION_SHUTDOWN:
+ gnome_session_shutdown ();
+ break;
+ case GSD_POWER_ACTION_HIBERNATE:
+@@ -1294,7 +1295,6 @@ do_config_power_action (GsdMediaKeysManager *manager,
+ g_error_free (error);
+ }
+ break;
+- case GSD_POWER_ACTION_SHUTDOWN:
+ case GSD_POWER_ACTION_BLANK:
+ case GSD_POWER_ACTION_NOTHING:
+ /* these actions cannot be handled by media-keys and
+--
+1.7.6.1
+
diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0007-media-keys-Don-t-assert-if-the-user-sets-the-button-.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0007-media-keys-Don-t-assert-if-the-user-sets-the-button-.patch
new file mode 100644
index 00000000..ad65c4f1
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0007-media-keys-Don-t-assert-if-the-user-sets-the-button-.patch
@@ -0,0 +1,26 @@
+From 2630585238a2fce1725d9d74bbdb95dd743d78fc Mon Sep 17 00:00:00 2001
+From: Richard Hughes <richard@hughsie.com>
+Date: Fri, 30 Sep 2011 14:50:35 +0100
+Subject: [PATCH 10/10] media-keys: Don't assert if the user sets the
+ 'button-power' action to 'nothing'
+
+Afterall, it's a valid action.
+---
+ plugins/media-keys/gsd-media-keys-manager.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
+index b97207a..3a4d5c5 100644
+--- a/plugins/media-keys/gsd-media-keys-manager.c
++++ b/plugins/media-keys/gsd-media-keys-manager.c
+@@ -1299,7 +1299,6 @@ do_config_power_action (GsdMediaKeysManager *manager,
+ case GSD_POWER_ACTION_NOTHING:
+ /* these actions cannot be handled by media-keys and
+ * are not used in this context */
+- g_assert_not_reached ();
+ break;
+ }
+ }
+--
+1.7.6.1
+