[mutter] meta-input-settings-x11: Don't try setting unavailable scroll methods
- From: Rui Matos <rtcm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] meta-input-settings-x11: Don't try setting unavailable scroll methods
- Date: Wed, 16 Nov 2016 12:58:13 +0000 (UTC)
commit 925b1aec641fe57f53cd06860b97db25bb415b7a
Author: Rui Matos <tiagomatos gmail com>
Date: Mon Nov 14 17:33:11 2016 +0100
meta-input-settings-x11: Don't try setting unavailable scroll methods
Since doing so causes BadValue X errors.
https://bugzilla.gnome.org/show_bug.cgi?id=771744
src/backends/x11/meta-input-settings-x11.c | 24 ++++++++++++++++++++----
1 files changed, 20 insertions(+), 4 deletions(-)
---
diff --git a/src/backends/x11/meta-input-settings-x11.c b/src/backends/x11/meta-input-settings-x11.c
index d7d468d..3fc0d2c 100644
--- a/src/backends/x11/meta-input-settings-x11.c
+++ b/src/backends/x11/meta-input-settings-x11.c
@@ -232,19 +232,27 @@ meta_input_settings_x11_set_edge_scroll (MetaInputSettings *settings,
gboolean edge_scroll_enabled)
{
guchar values[SCROLL_METHOD_NUM_FIELDS] = { 0 }; /* 2fg, edge, button. The last value is unused */
- guchar *current;
+ guchar *current = NULL;
+ guchar *available = NULL;
+
+ available = get_property (device, "libinput Scroll Methods Available",
+ XA_INTEGER, 8, SCROLL_METHOD_NUM_FIELDS);
+ if (!available || !available[SCROLL_METHOD_FIELD_EDGE])
+ goto out;
current = get_property (device, "libinput Scroll Method Enabled",
XA_INTEGER, 8, SCROLL_METHOD_NUM_FIELDS);
if (!current)
- return;
+ goto out;
memcpy (values, current, SCROLL_METHOD_NUM_FIELDS);
values[SCROLL_METHOD_FIELD_EDGE] = !!edge_scroll_enabled;
change_property (device, "libinput Scroll Method Enabled",
XA_INTEGER, 8, &values, SCROLL_METHOD_NUM_FIELDS);
+ out:
meta_XFree (current);
+ meta_XFree (available);
}
static void
@@ -253,19 +261,27 @@ meta_input_settings_x11_set_two_finger_scroll (MetaInputSettings *set
gboolean two_finger_scroll_enabled)
{
guchar values[SCROLL_METHOD_NUM_FIELDS] = { 0 }; /* 2fg, edge, button. The last value is unused */
- guchar *current;
+ guchar *current = NULL;
+ guchar *available = NULL;
+
+ available = get_property (device, "libinput Scroll Methods Available",
+ XA_INTEGER, 8, SCROLL_METHOD_NUM_FIELDS);
+ if (!available || !available[SCROLL_METHOD_FIELD_2FG])
+ goto out;
current = get_property (device, "libinput Scroll Method Enabled",
XA_INTEGER, 8, SCROLL_METHOD_NUM_FIELDS);
if (!current)
- return;
+ goto out;
memcpy (values, current, SCROLL_METHOD_NUM_FIELDS);
values[SCROLL_METHOD_FIELD_2FG] = !!two_finger_scroll_enabled;
change_property (device, "libinput Scroll Method Enabled",
XA_INTEGER, 8, &values, SCROLL_METHOD_NUM_FIELDS);
+ out:
meta_XFree (current);
+ meta_XFree (available);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]