diff options
author | Alexandre Rostovtsev <tetromino@gmail.com> | 2011-09-07 17:54:49 -0400 |
---|---|---|
committer | Alexandre Rostovtsev <tetromino@gmail.com> | 2011-09-07 18:08:54 -0400 |
commit | 8395db0abaf83803e55fda6d5bfab5f433d3227b (patch) | |
tree | 1e05a0c32ed4d4b3863b09c4df2aa9ed7c4f8024 /gnome-base/gnome-settings-daemon/files | |
parent | www-client/epiphany: 3.0.3 → 3.1.91.1 (diff) | |
download | gnome-8395db0abaf83803e55fda6d5bfab5f433d3227b.tar.gz gnome-8395db0abaf83803e55fda6d5bfab5f433d3227b.tar.bz2 gnome-8395db0abaf83803e55fda6d5bfab5f433d3227b.zip |
gnome-base/gnome-settings-daemon: 3.1.90 → 3.1.91
Version bump with numerous bugfixes (and more in upstream patches that
will be in next release).
Diffstat (limited to 'gnome-base/gnome-settings-daemon/files')
5 files changed, 356 insertions, 0 deletions
diff --git a/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-disabled-devices.patch b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-disabled-devices.patch new file mode 100644 index 00000000..073d41a3 --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-disabled-devices.patch @@ -0,0 +1,114 @@ +From 3dc1f72b297bfedf39cdb1c0e11f0b8df8269737 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera <hadess@hadess.net> +Date: Tue, 06 Sep 2011 19:09:25 +0000 +Subject: common: Add helper to list disabled devices + +--- +diff --git a/plugins/common/gsd-input-helper.c b/plugins/common/gsd-input-helper.c +index 2d82722..a2a0451 100644 +--- a/plugins/common/gsd-input-helper.c ++++ b/plugins/common/gsd-input-helper.c +@@ -238,7 +238,7 @@ set_device_enabled (int device_id, + + gdk_error_trap_push (); + +- value = enabled; ++ value = enabled ? 1 : 0; + XIChangeProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), + device_id, prop, XA_INTEGER, 8, PropModeReplace, &value, 1); + +@@ -320,3 +320,37 @@ run_custom_command (GdkDevice *device, + + return (exit_status == 0); + } ++ ++GList * ++get_disabled_devices (GdkDeviceManager *manager) ++{ ++ XDeviceInfo *device_info; ++ gint n_devices; ++ guint i; ++ GList *ret; ++ ++ ret = NULL; ++ ++ device_info = XListInputDevices (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &n_devices); ++ if (device_info == NULL) ++ return ret; ++ ++ for (i = 0; i < n_devices; i++) { ++ GdkDevice *device; ++ ++ /* Ignore core devices */ ++ if (device_info[i].use == IsXKeyboard || ++ device_info[i].use == IsXPointer) ++ continue; ++ ++ /* 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; ++ ++ ret = g_list_prepend (ret, GINT_TO_POINTER (device_info[i].id)); ++ } ++ ++ return ret; ++} +diff --git a/plugins/common/gsd-input-helper.h b/plugins/common/gsd-input-helper.h +index 736c452..48bc249 100644 +--- a/plugins/common/gsd-input-helper.h ++++ b/plugins/common/gsd-input-helper.h +@@ -69,6 +69,8 @@ gboolean device_set_property (XDevice *xdevice, + gboolean run_custom_command (GdkDevice *device, + CustomCommand command); + ++GList * get_disabled_devices (GdkDeviceManager *manager); ++ + G_END_DECLS + + #endif /* __GSD_INPUT_HELPER_H */ +diff --git a/plugins/common/test-input-helper.c b/plugins/common/test-input-helper.c +index 500c624..bbdd30b 100644 +--- a/plugins/common/test-input-helper.c ++++ b/plugins/common/test-input-helper.c +@@ -29,6 +29,28 @@ + + #include "gsd-input-helper.h" + ++static void ++print_disabled_devices (void) ++{ ++ GList *devices, *l; ++ GdkDeviceManager *manager; ++ ++ manager = gdk_display_get_device_manager (gdk_display_get_default ()); ++ ++ devices = get_disabled_devices (manager); ++ g_print ("Disabled devices:\t\t\t"); ++ if (devices == NULL) { ++ g_print ("no\n"); ++ return; ++ } ++ ++ for (l = devices; l != NULL; l = l->next) { ++ g_print ("%d ", GPOINTER_TO_INT (l->data)); ++ } ++ g_list_free (devices); ++ g_print ("\n"); ++} ++ + int main (int argc, char **argv) + { + gboolean supports_xinput; +@@ -66,6 +88,8 @@ int main (int argc, char **argv) + return 1; + } + ++ print_disabled_devices (); ++ + for (i = 0; i < n_devices; i++) { + XDevice *device; + +-- +cgit v0.9.0.2 diff --git a/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-disabled-touchpad.patch b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-disabled-touchpad.patch new file mode 100644 index 00000000..2acec446 --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-disabled-touchpad.patch @@ -0,0 +1,147 @@ +From d293616f41ce5acc7a0f1d9e12907ba9edbf34b3 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera <hadess@hadess.net> +Date: Tue, 6 Sep 2011 20:11:54 +0100 +Subject: [PATCH] mouse: Try harder to re-enable devices + +Look for disabled devices when we need to re-enable +devices as they won't be listed in the list of devices +given by GdkDeviceManager (as per bug 658379) + +https://bugzilla.gnome.org/show_bug.cgi?id=656397 + +[Alexandre Rostovtsev <tetromino@gmail.com>: backport to 3.1.90] +--- + plugins/mouse/gsd-mouse-manager.c | 69 +++++++++++++++++++++++++++++++++--- + 1 files changed, 63 insertions(+), 6 deletions(-) + +diff --git a/plugins/mouse/gsd-mouse-manager.c b/plugins/mouse/gsd-mouse-manager.c +index 843a57e..d48b27c 100644 +--- a/plugins/mouse/gsd-mouse-manager.c ++++ b/plugins/mouse/gsd-mouse-manager.c +@@ -733,14 +733,15 @@ set_edge_scroll (GdkDevice *device, + } + + static void +-set_touchpad_enabled (GdkDevice *device, +- gboolean state) ++set_touchpad_disabled (GdkDevice *device) + { + int id; + XDevice *xdevice; + + g_object_get (G_OBJECT (device), "device-id", &id, NULL); + ++ g_debug ("Trying to set device disabled for \"%s\" (%d)", gdk_device_get_name (device), id); ++ + xdevice = open_gdk_device (device); + if (xdevice == NULL) + return; +@@ -750,8 +751,35 @@ set_touchpad_enabled (GdkDevice *device, + return; + } + +- if (set_device_enabled (id, state) == FALSE) +- g_warning ("Error %s device \"%s\"", (state) ? "enabling" : "disabling", gdk_device_get_name (device)); ++ if (set_device_enabled (id, FALSE) == FALSE) ++ g_warning ("Error disabling device \"%s\" (%d)", gdk_device_get_name (device), id); ++ else ++ g_debug ("Disabled device \"%s\" (%d)", gdk_device_get_name (device), id); ++ ++ XCloseDevice (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice); ++} ++ ++static void ++set_touchpad_enabled (int id) ++{ ++ XDevice *xdevice; ++ ++ g_debug ("Trying to set device enabled for %d", id); ++ ++ gdk_error_trap_push (); ++ xdevice = XOpenDevice (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), id); ++ if (gdk_error_trap_pop () != 0) ++ return; ++ ++ if (!device_is_touchpad (xdevice)) { ++ XCloseDevice (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice); ++ return; ++ } ++ ++ if (set_device_enabled (id, TRUE) == FALSE) ++ g_warning ("Error enabling device \"%d\"", id); ++ else ++ g_debug ("Enabled device %d", id); + + XCloseDevice (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice); + } +@@ -867,7 +895,8 @@ set_mouse_settings (GsdMouseManager *manager, + set_tap_to_click (device, g_settings_get_boolean (manager->priv->touchpad_settings, KEY_TAP_TO_CLICK), touchpad_left_handed); + set_edge_scroll (device, g_settings_get_enum (manager->priv->touchpad_settings, KEY_SCROLL_METHOD)); + set_horiz_scroll (device, g_settings_get_boolean (manager->priv->touchpad_settings, KEY_PAD_HORIZ_SCROLL)); +- set_touchpad_enabled (device, g_settings_get_boolean (manager->priv->touchpad_settings, KEY_TOUCHPAD_ENABLED)); ++ if (g_settings_get_boolean (manager->priv->touchpad_settings, KEY_TOUCHPAD_ENABLED) == FALSE) ++ set_touchpad_disabled (device); + } + + static void +@@ -927,6 +956,8 @@ touchpad_callback (GSettings *settings, + for (l = devices; l != NULL; l = l->next) { + GdkDevice *device = l->data; + ++ g_message ("checking on device %s", gdk_device_get_name (device)); ++ + if (device_is_blacklisted (manager, device)) + return; + +@@ -939,7 +970,10 @@ touchpad_callback (GSettings *settings, + } else if (g_str_equal (key, KEY_PAD_HORIZ_SCROLL)) { + set_horiz_scroll (device, g_settings_get_boolean (settings, key)); + } else if (g_str_equal (key, KEY_TOUCHPAD_ENABLED)) { +- set_touchpad_enabled (device, g_settings_get_boolean (settings, key)); ++ if (g_settings_get_boolean (settings, key) == FALSE) ++ set_touchpad_disabled (device); ++ else ++ set_touchpad_enabled (gdk_x11_device_get_id (device)); + } else if (g_str_equal (key, KEY_MOTION_ACCELERATION) || + g_str_equal (key, KEY_MOTION_THRESHOLD)) { + set_motion (manager, device); +@@ -950,6 +984,18 @@ touchpad_callback (GSettings *settings, + } + } + g_list_free (devices); ++ ++ if (g_str_equal (key, KEY_TOUCHPAD_ENABLED) && ++ g_settings_get_boolean (settings, key)) { ++ devices = get_disabled_devices (manager->priv->device_manager); ++ for (l = devices; l != NULL; l = l->next) { ++ int device_id; ++ ++ device_id = GPOINTER_TO_INT (l->data); ++ set_touchpad_enabled (device_id); ++ } ++ g_list_free (devices); ++ } + } + + static void +@@ -1056,6 +1102,17 @@ gsd_mouse_manager_idle_cb (GsdMouseManager *manager) + } + g_list_free (devices); + ++ if (g_settings_get_boolean (manager->priv->touchpad_settings, KEY_TOUCHPAD_ENABLED)) { ++ devices = get_disabled_devices (manager->priv->device_manager); ++ for (l = devices; l != NULL; l = l->next) { ++ int device_id; ++ ++ device_id = GPOINTER_TO_INT (l->data); ++ set_touchpad_enabled (device_id); ++ } ++ g_list_free (devices); ++ } ++ + gnome_settings_profile_end (NULL); + + manager->priv->start_idle_id = 0; +-- +1.7.6.1 + diff --git a/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-divide-by-zero.patch b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-divide-by-zero.patch new file mode 100644 index 00000000..be371e20 --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-divide-by-zero.patch @@ -0,0 +1,29 @@ +From 5be38144f19d1479c908039ffc2991052b06111b Mon Sep 17 00:00:00 2001 +From: Bastien Nocera <hadess@hadess.net> +Date: Wed, 07 Sep 2011 15:18:46 +0000 +Subject: power: Make ABS_TO_PERCENTAGE warn on invalid input + +Works around this problem, whilst producing a warning. +https://bugzilla.gnome.org/show_bug.cgi?id=657364 +--- +diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c +index a67c998..80aba9d 100644 +--- a/plugins/power/gsd-power-manager.c ++++ b/plugins/power/gsd-power-manager.c +@@ -126,7 +126,13 @@ static const gchar introspection_xml[] = + #define BRIGHTNESS_STEP_AMOUNT(max) ((max) < 20 ? 1 : (max) / 20) + + /* take a discrete value with offset and convert to percentage */ +-#define ABS_TO_PERCENTAGE(min, max, value) (((value - min) * 100) / (max - min)) ++static int ++abs_to_percentage (int min, int max, int value) ++{ ++ g_return_val_if_fail (max > min, -1); ++ return (((value - min) * 100) / (max - min)); ++} ++#define ABS_TO_PERCENTAGE(min, max, value) abs_to_percentage(min, max, value) + #define PERCENTAGE_TO_ABS(min, max, value) (min + (((max - min) * value) / 100)) + + #define GSD_POWER_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_POWER_MANAGER, GsdPowerManagerPrivate)) +-- +cgit v0.9.0.2 diff --git a/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-exit-value.patch b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-exit-value.patch new file mode 100644 index 00000000..a75fea65 --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-exit-value.patch @@ -0,0 +1,46 @@ +From 8c61c54ba6248891541d5d849d1d9871ad3c4940 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera <hadess@hadess.net> +Date: Wed, 07 Sep 2011 15:31:13 +0000 +Subject: power: Correctly check for helper exit status + +By using WEXITSTATUS() and not relying solely on the +return value of g_spawn_command_line_sync(). + +https://bugzilla.gnome.org/show_bug.cgi?id=657364 +--- +diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c +index 80aba9d..af10b4f 100644 +--- a/plugins/power/gsd-power-manager.c ++++ b/plugins/power/gsd-power-manager.c +@@ -2254,11 +2254,11 @@ backlight_helper_get_value (const gchar *argument, GError **error) + NULL, + &exit_status, + error); +- if (!ret) +- goto out; +- + g_debug ("executed %s retval: %i", command, exit_status); + ++ if (!ret || WEXITSTATUS (exit_status) != 0) ++ goto out; ++ + /* parse */ + value = g_ascii_strtoll (stdout_data, &endptr, 10); + +@@ -2322,10 +2322,12 @@ backlight_helper_set_value (const gchar *argument, + NULL, + &exit_status, + error); +- if (!ret) +- goto out; + + g_debug ("executed %s retval: %i", command, exit_status); ++ ++ if (!ret || WEXITSTATUS (exit_status) != 0) ++ goto out; ++ + out: + g_free (command); + return ret; +-- +cgit v0.9.0.2 diff --git a/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-gconf-leak.patch b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-gconf-leak.patch new file mode 100644 index 00000000..09fb2d24 --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.1.91-gconf-leak.patch @@ -0,0 +1,20 @@ +From 9b534448f26d51ce1ac80b49483a621ac3a9540f Mon Sep 17 00:00:00 2001 +From: Rodrigo Moya <rodrigo@gnome-db.org> +Date: Tue, 06 Sep 2011 10:19:08 +0000 +Subject: gconf: Plug a memory leak + +--- +diff --git a/plugins/gconf/gsd-gconf-manager.c b/plugins/gconf/gsd-gconf-manager.c +index 7723e35..20c94b1 100644 +--- a/plugins/gconf/gsd-gconf-manager.c ++++ b/plugins/gconf/gsd-gconf-manager.c +@@ -138,6 +138,7 @@ gsd_gconf_manager_start (GsdGconfManager *manager, GError **error) + /* Free all memory */ + g_free (path); + g_strfreev (groups); ++ g_key_file_free (key_file); + + result = TRUE; + } +-- +cgit v0.9.0.2 |