diff options
author | Alexandre Rostovtsev <tetromino@gmail.com> | 2011-09-30 18:28:36 -0400 |
---|---|---|
committer | Alexandre Rostovtsev <tetromino@gmail.com> | 2011-09-30 18:28:36 -0400 |
commit | ff9a51d86e029d057d82a44955af2328af5c000c (patch) | |
tree | dd78cd3e40badff78740e1e6c6cc7291cc5c5b8f /gnome-base/gnome-settings-daemon/files | |
parent | net-libs/webkit-gtk, dev-libs/gjs: moved to tree (diff) | |
download | gnome-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')
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 + |