Hello community,
here is the log from the commit of package xf86-input-libinput for openSUSE:Factory checked in at 2015-04-25 09:54:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-input-libinput (Old)
and /work/SRC/openSUSE:Factory/.xf86-input-libinput.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-input-libinput"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-input-libinput/xf86-input-libinput.changes 2015-04-23 08:05:18.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xf86-input-libinput.new/xf86-input-libinput.changes 2015-04-25 11:26:26.000000000 +0200
@@ -1,0 +2,14 @@
+Fri Apr 24 15:20:02 UTC 2015 - sndirsch@suse.com
+
+- xf86-input-libinput 0.9.0
+ * A couple of cosmetic changes but one addition of a new set of
+ properties: properties named "libinput something Default" show
+ the libinput default for a device. For example:
+ libinput Click Methods Available (284): 1, 1
+ libinput Click Method Enabled (285): 0, 1
+ libinput Click Method Enabled Default (286): 1, 0
+ This device has software buttons and clickfingers available,
+ clickfingers is currently enabled, software buttons is the
+ default for this device.
+
+-------------------------------------------------------------------
Old:
----
xf86-input-libinput-0.8.0.tar.bz2
New:
----
xf86-input-libinput-0.9.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xf86-input-libinput.spec ++++++
--- /var/tmp/diff_new_pack.udIBUb/_old 2015-04-25 11:26:26.000000000 +0200
+++ /var/tmp/diff_new_pack.udIBUb/_new 2015-04-25 11:26:26.000000000 +0200
@@ -17,7 +17,7 @@
Name: xf86-input-libinput
-Version: 0.8.0
+Version: 0.9.0
Release: 0
Summary: Libinput driver for the Xorg X server
License: MIT
++++++ xf86-input-libinput-0.8.0.tar.bz2 -> xf86-input-libinput-0.9.0.tar.bz2 ++++++
++++ 6997 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.8.0/ChangeLog new/xf86-input-libinput-0.9.0/ChangeLog
--- old/xf86-input-libinput-0.8.0/ChangeLog 2015-03-06 06:34:03.000000000 +0100
+++ new/xf86-input-libinput-0.9.0/ChangeLog 2015-04-23 04:23:34.000000000 +0200
@@ -1,3 +1,63 @@
+commit 446401bea9d0335273963f476e897d8c4916420e
+Author: Peter Hutterer
+Date: Thu Apr 23 12:20:12 2015 +1000
+
+ xf86-input-libinput 0.9.0
+
+ Signed-off-by: Peter Hutterer
+
+commit 8d4e03570cbdbb53bae57452614cbe45b6eb46f8
+Author: Peter Hutterer
+Date: Mon Mar 16 09:33:17 2015 +1000
+
+ Add "libinput something Default" properties
+
+ A client or xorg.conf setting may change the property but once changed it
+ cannot be reset by a client to the original state without knowledge about the
+ device.
+
+ Export the various libinput_...get_default() functions as properties.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=89574
+
+ Signed-off-by: Peter Hutterer
+ Reviewed-by: Hans de Goede
+
+commit 0c5620a29c6f08b824457f5e6ce3c4e25c1c136e
+Author: Peter Hutterer
+Date: Mon Mar 16 09:40:36 2015 +1000
+
+ Add a helper function for making properties
+
+ Signed-off-by: Peter Hutterer
+ Reviewed-by: Hans de Goede
+
+commit fb50cef7002392eb16537fe8f0cdffbc2ab03a7a
+Author: Peter Hutterer
+Date: Wed Mar 18 09:10:38 2015 +1000
+
+ man: update the property list in the man page
+
+ Signed-off-by: Peter Hutterer
+
+commit 64a0f870e02f99f2204cc5568c3eea4d8a16e80d
+Author: Peter Hutterer
+Date: Wed Mar 18 08:58:59 2015 +1000
+
+ Fix a couple of -Wformat warnings
+
+ unsigned int vs int
+
+ Signed-off-by: Peter Hutterer
+
+commit e362e4dc4c7662902c3e467d9ef9686bf63acbbd
+Author: Peter Hutterer
+Date: Mon Mar 16 10:35:37 2015 +1000
+
+ cosmetic: drop duplicate empty lines
+
+ Signed-off-by: Peter Hutterer
+
commit 7b3b04b5186abf9b3ebb7bc9db1c0bf10635d84c
Author: Peter Hutterer
Date: Fri Mar 6 15:32:58 2015 +1000
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.8.0/configure.ac new/xf86-input-libinput-0.9.0/configure.ac
--- old/xf86-input-libinput-0.8.0/configure.ac 2015-03-06 06:32:55.000000000 +0100
+++ new/xf86-input-libinput-0.9.0/configure.ac 2015-04-23 04:17:29.000000000 +0200
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-input-libinput],
- [0.8.0],
+ [0.9.0],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
[xf86-input-libinput])
AC_CONFIG_SRCDIR([Makefile.am])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.8.0/include/libinput-properties.h new/xf86-input-libinput-0.9.0/include/libinput-properties.h
--- old/xf86-input-libinput-0.8.0/include/libinput-properties.h 2015-02-26 08:04:11.000000000 +0100
+++ new/xf86-input-libinput-0.9.0/include/libinput-properties.h 2015-03-18 00:15:40.000000000 +0100
@@ -27,15 +27,27 @@
/* Tapping enabled/disabled: BOOL, 1 value */
#define LIBINPUT_PROP_TAP "libinput Tapping Enabled"
+/* Tapping default enabled/disabled: BOOL, 1 value, read-only */
+#define LIBINPUT_PROP_TAP_DEFAULT "libinput Tapping Enabled Default"
+
/* Calibration matrix: FLOAT, 9 values of a 3x3 matrix, in rows */
#define LIBINPUT_PROP_CALIBRATION "libinput Calibration Matrix"
+/* Calibration matrix: FLOAT, 9 values of a 3x3 matrix, in rows, read-only*/
+#define LIBINPUT_PROP_CALIBRATION_DEFAULT "libinput Calibration Matrix Default"
+
/* Pointer accel speed: FLOAT, 1 value, 32 bit */
#define LIBINPUT_PROP_ACCEL "libinput Accel Speed"
+/* Pointer accel speed: FLOAT, 1 value, 32 bit, read-only*/
+#define LIBINPUT_PROP_ACCEL_DEFAULT "libinput Accel Speed Default"
+
/* Natural scrolling: BOOL, 1 value */
#define LIBINPUT_PROP_NATURAL_SCROLL "libinput Natural Scrolling Enabled"
+/* Natural scrolling: BOOL, 1 value, read-only */
+#define LIBINPUT_PROP_NATURAL_SCROLL_DEFAULT "libinput Natural Scrolling Enabled Default"
+
/* Send-events mode: BOOL read-only, 2 values in order disabled,
disabled-on-external-mouse */
#define LIBINPUT_PROP_SENDEVENTS_AVAILABLE "libinput Send Events Modes Available"
@@ -44,9 +56,16 @@
disabled-on-external-mouse */
#define LIBINPUT_PROP_SENDEVENTS_ENABLED "libinput Send Events Mode Enabled"
+/* Send-events mode: BOOL, 2 values in order disabled,
+ disabled-on-external-mouse, read-only */
+#define LIBINPUT_PROP_SENDEVENTS_ENABLED_DEFAULT "libinput Send Events Mode Enabled Default"
+
/* Left-handed enabled/disabled: BOOL, 1 value */
#define LIBINPUT_PROP_LEFT_HANDED "libinput Left Handed Enabled"
+/* Left-handed enabled/disabled: BOOL, 1 value, read-only */
+#define LIBINPUT_PROP_LEFT_HANDED_DEFAULT "libinput Left Handed Enabled Default"
+
/* Scroll method: BOOL read-only, 3 values in order 2fg, edge, button.
shows available scroll methods */
#define LIBINPUT_PROP_SCROLL_METHODS_AVAILABLE "libinput Scroll Methods Available"
@@ -55,9 +74,16 @@
only one is enabled at a time at max */
#define LIBINPUT_PROP_SCROLL_METHOD_ENABLED "libinput Scroll Method Enabled"
+/* Scroll method: BOOL, 3 values in order 2fg, edge, button
+ only one is enabled at a time at max, read-only */
+#define LIBINPUT_PROP_SCROLL_METHOD_ENABLED_DEFAULT "libinput Scroll Method Enabled Default"
+
/* Scroll button for button scrolling: 32-bit int, 1 value */
#define LIBINPUT_PROP_SCROLL_BUTTON "libinput Button Scrolling Button"
+/* Scroll button for button scrolling: 32-bit int, 1 value, read-only */
+#define LIBINPUT_PROP_SCROLL_BUTTON_DEFAULT "libinput Button Scrolling Button Default"
+
/* Click method: BOOL read-only, 2 values in order buttonareas, clickfinger
shows available click methods */
#define LIBINPUT_PROP_CLICK_METHODS_AVAILABLE "libinput Click Methods Available"
@@ -66,4 +92,7 @@
only one enabled at a time at max */
#define LIBINPUT_PROP_CLICK_METHOD_ENABLED "libinput Click Method Enabled"
+/* Click method: BOOL, 2 values in order buttonareas, clickfinger
+ only one enabled at a time at max, read-only */
+#define LIBINPUT_PROP_CLICK_METHOD_ENABLED_DEFAULT "libinput Click Method Enabled Default"
#endif /* _LIBINPUT_PROPERTIES_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.8.0/man/libinput.man new/xf86-input-libinput-0.9.0/man/libinput.man
--- old/xf86-input-libinput-0.8.0/man/libinput.man 2015-02-26 07:56:25.000000000 +0100
+++ new/xf86-input-libinput-0.9.0/man/libinput.man 2015-03-18 00:15:40.000000000 +0100
@@ -96,7 +96,11 @@
libinput. On configuration failure, the default value is applied.
.SH SUPPORTED PROPERTIES
-The following properties are provided by the
+.B libinput
+exports runtime-configurable options as properties. If a property listed
+below is not available, the matching configuration option is not available
+on the device. This however does not imply that the feature is not available
+on the device. The following properties are provided by the
.B libinput
driver.
.TP 7
@@ -113,9 +117,44 @@
.BI "libinput Natural Scrolling Enabled"
1 boolean value (8 bit, 0 or 1). 1 enables natural scrolling
.TP 7
-.BI "libinput Send Events Mode"
-1 32-bit value, defines the sendevent mode. See the libinput documentation
-for the allowed values.
+.BI "libinput Send Events Modes Available"
+2 boolean values (8 bit, 0 or 1), in order "disabled" and
+"disabled-on-external-mouse". Indicates which send-event modes are available
+on this device.
+.TP 7
+.BI "libinput Send Events Mode Enabled"
+2 boolean values (8 bit, 0 or 1), in order "disabled" and
+"disabled-on-external-mouse". Indicates which send-event modes is currently
+enabled on this device.
+.TP 7
+.BI "libinput Left Handed Enabled"
+1 boolean value (8 bit, 0 or 1). Indicates if left-handed mode is enabled or
+disabled.
+.TP 7
+.BI "libinput Scroll Methods Available"
+3 boolean values (8 bit, 0 or 1), in order "two-finger", "edge", "button".
+Indicates which scroll methods are available on this device.
+.TP 7
+.BI "libinput Scroll Method Enabled"
+3 boolean values (8 bit, 0 or 1), in order "two-finger", "edge", "button".
+Indicates which scroll method is currently enabled on this device.
+.TP 7
+.BI "libinput Button Scrolling Button"
+1 32-bit value. Sets the button number to use for button scrolling. This
+setting is independent of the scroll method, to enable button scrolling the
+method must be set to button-scrolling and a valid button must be set.
+.TP 7
+.BI "libinput Click Methods Available"
+2 boolean values (8 bit, 0 or 1), in order "buttonareas", "clickfinger".
+Indicates which click methods are available on this device.
+.TP 7
+.BI "libinput Click Methods Enabled"
+2 boolean values (8 bit, 0 or 1), in order "buttonareas", "clickfinger".
+Indicates which click methods are enabled on this device.
+.PP
+The above properties have a
+.BI "libinput <property name> Default"
+equivalent that indicates the default value for this setting on this device.
.SH AUTHORS
Peter Hutterer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-libinput-0.8.0/src/libinput.c new/xf86-input-libinput-0.9.0/src/libinput.c
--- old/xf86-input-libinput-0.8.0/src/libinput.c 2015-03-06 05:50:38.000000000 +0100
+++ new/xf86-input-libinput-0.9.0/src/libinput.c 2015-04-13 01:01:18.000000000 +0200
@@ -225,7 +225,7 @@
libinput_device_config_send_events_set_mode(device,
driver_data->options.sendevents) != LIBINPUT_CONFIG_STATUS_SUCCESS)
xf86IDrvMsg(pInfo, X_ERROR,
- "Failed to set SendEventsMode %d\n",
+ "Failed to set SendEventsMode %u\n",
driver_data->options.sendevents);
if (libinput_device_config_scroll_has_natural_scroll(device) &&
@@ -289,7 +289,7 @@
scroll_button = btn_xorg2linux(driver_data->options.scroll_button);
if (libinput_device_config_scroll_set_button(device, scroll_button) != LIBINPUT_CONFIG_STATUS_SUCCESS)
xf86IDrvMsg(pInfo, X_ERROR,
- "Failed to set ScrollButton to %d\n",
+ "Failed to set ScrollButton to %u\n",
driver_data->options.scroll_button);
}
@@ -1041,7 +1041,7 @@
if (libinput_device_config_send_events_set_mode(device, mode) !=
LIBINPUT_CONFIG_STATUS_SUCCESS) {
xf86IDrvMsg(pInfo, X_ERROR,
- "Failed to set SendEventsMode %d\n", mode);
+ "Failed to set SendEventsMode %u\n", mode);
mode = libinput_device_config_send_events_get_mode(device);
}
driver_data->options.sendevents = mode;
@@ -1135,7 +1135,7 @@
if (libinput_device_config_scroll_set_button(device,
b) != LIBINPUT_CONFIG_STATUS_SUCCESS) {
xf86IDrvMsg(pInfo, X_ERROR,
- "Failed to set ScrollButton to %d\n",
+ "Failed to set ScrollButton to %u\n",
scroll_button);
scroll_button = btn_linux2xorg(libinput_device_config_scroll_get_button(device));
}
@@ -1327,17 +1327,26 @@
/* libinput-specific properties */
static Atom prop_tap;
+static Atom prop_tap_default;
static Atom prop_calibration;
+static Atom prop_calibration_default;
static Atom prop_accel;
+static Atom prop_accel_default;
static Atom prop_natural_scroll;
+static Atom prop_natural_scroll_default;
static Atom prop_sendevents_available;
static Atom prop_sendevents_enabled;
+static Atom prop_sendevents_default;
static Atom prop_left_handed;
+static Atom prop_left_handed_default;
static Atom prop_scroll_methods_available;
static Atom prop_scroll_method_enabled;
+static Atom prop_scroll_method_default;
static Atom prop_scroll_button;
+static Atom prop_scroll_button_default;
static Atom prop_click_methods_available;
static Atom prop_click_method_enabled;
+static Atom prop_click_method_default;
/* general properties */
static Atom prop_float;
@@ -1355,7 +1364,7 @@
if (device == NULL) {
BUG_WARN(dev->public.on);
xf86IDrvMsg(pInfo, X_INFO,
- "SetProperty on %d called but device is disabled.\n"
+ "SetProperty on %u called but device is disabled.\n"
"This driver cannot change properties on a disabled device\n",
atom);
return FALSE;
@@ -1685,7 +1694,6 @@
return Success;
}
-
static int
LibinputSetProperty(DeviceIntPtr dev, Atom atom, XIPropertyValuePtr val,
BOOL checkonly)
@@ -1717,7 +1725,16 @@
return BadAccess; /* read-only */
else if (atom == prop_click_method_enabled)
rc = LibinputSetPropertyClickMethod(dev, atom, val, checkonly);
- else if (atom == prop_device || atom == prop_product_id)
+ else if (atom == prop_device || atom == prop_product_id ||
+ atom == prop_tap_default ||
+ atom == prop_calibration_default ||
+ atom == prop_accel_default ||
+ atom == prop_natural_scroll_default ||
+ atom == prop_sendevents_default ||
+ atom == prop_left_handed_default ||
+ atom == prop_scroll_method_default ||
+ atom == prop_scroll_button_default ||
+ atom == prop_click_method_default)
return BadAccess; /* read-only */
else
return Success;
@@ -1728,23 +1745,52 @@
return rc;
}
+static Atom
+LibinputMakeProperty(DeviceIntPtr dev,
+ const char *prop_name,
+ Atom type,
+ int format,
+ int len,
+ void *data)
+{
+ int rc;
+ Atom prop = MakeAtom(prop_name, strlen(prop_name), TRUE);
+
+ rc = XIChangeDeviceProperty(dev, prop, type, format,
+ PropModeReplace,
+ len, data, FALSE);
+ if (rc != Success)
+ return None;
+
+ XISetDevicePropertyDeletable(dev, prop, FALSE);
+
+ return prop;
+}
+
static void
LibinputInitTapProperty(DeviceIntPtr dev,
struct xf86libinput *driver_data,
struct libinput_device *device)
{
BOOL tap = driver_data->options.tapping;
- int rc;
if (libinput_device_config_tap_get_finger_count(device) == 0)
return;
- prop_tap = MakeAtom(LIBINPUT_PROP_TAP, strlen(LIBINPUT_PROP_TAP), TRUE);
- rc = XIChangeDeviceProperty(dev, prop_tap, XA_INTEGER, 8,
- PropModeReplace, 1, &tap, FALSE);
- if (rc != Success)
+ prop_tap = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_TAP,
+ XA_INTEGER,
+ 8,
+ 1,
+ &tap);
+ if (!prop_tap)
return;
- XISetDevicePropertyDeletable(dev, prop_tap, FALSE);
+
+ tap = libinput_device_config_tap_get_default_enabled(device);
+ prop_tap_default = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_TAP_DEFAULT,
+ XA_INTEGER, 8,
+ 1, &tap);
}
static void
@@ -1753,7 +1799,6 @@
struct libinput_device *device)
{
float calibration[9];
- int rc;
if (!libinput_device_config_calibration_has_matrix(device))
return;
@@ -1766,15 +1811,20 @@
calibration[7] = 0;
calibration[8] = 1;
- prop_calibration = MakeAtom(LIBINPUT_PROP_CALIBRATION,
- strlen(LIBINPUT_PROP_CALIBRATION),
- TRUE);
-
- rc = XIChangeDeviceProperty(dev, prop_calibration, prop_float, 32,
- PropModeReplace, 9, calibration, FALSE);
- if (rc != Success)
+ prop_calibration = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_CALIBRATION,
+ prop_float, 32,
+ 9, calibration);
+ if (!prop_calibration)
return;
- XISetDevicePropertyDeletable(dev, prop_calibration, FALSE);
+
+ libinput_device_config_calibration_get_default_matrix(device,
+ calibration);
+
+ prop_calibration_default = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_CALIBRATION_DEFAULT,
+ prop_float, 32,
+ 9, calibration);
}
static void
@@ -1783,17 +1833,22 @@
struct libinput_device *device)
{
float speed = driver_data->options.speed;
- int rc;
if (!libinput_device_config_accel_is_available(device))
return;
- prop_accel = MakeAtom(LIBINPUT_PROP_ACCEL, strlen(LIBINPUT_PROP_ACCEL), TRUE);
- rc = XIChangeDeviceProperty(dev, prop_accel, prop_float, 32,
- PropModeReplace, 1, &speed, FALSE);
- if (rc != Success)
+ prop_accel = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_ACCEL,
+ prop_float, 32,
+ 1, &speed);
+ if (!prop_accel)
return;
- XISetDevicePropertyDeletable(dev, prop_accel, FALSE);
+
+ speed = libinput_device_config_accel_get_default_speed(device);
+ prop_accel_default = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_ACCEL_DEFAULT,
+ prop_float, 32,
+ 1, &speed);
}
static void
@@ -1802,19 +1857,22 @@
struct libinput_device *device)
{
BOOL natural_scroll = driver_data->options.natural_scrolling;
- int rc;
if (!libinput_device_config_scroll_has_natural_scroll(device))
return;
- prop_natural_scroll = MakeAtom(LIBINPUT_PROP_NATURAL_SCROLL,
- strlen(LIBINPUT_PROP_NATURAL_SCROLL),
- TRUE);
- rc = XIChangeDeviceProperty(dev, prop_natural_scroll, XA_INTEGER, 8,
- PropModeReplace, 1, &natural_scroll, FALSE);
- if (rc != Success)
+ prop_natural_scroll = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_NATURAL_SCROLL,
+ XA_INTEGER, 8,
+ 1, &natural_scroll);
+ if (!prop_natural_scroll)
return;
- XISetDevicePropertyDeletable(dev, prop_natural_scroll, FALSE);
+
+ natural_scroll = libinput_device_config_scroll_get_default_natural_scroll_enabled(device);
+ prop_natural_scroll_default = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_NATURAL_SCROLL_DEFAULT,
+ XA_INTEGER, 8,
+ 1, &natural_scroll);
}
static void
@@ -1825,7 +1883,6 @@
uint32_t sendevent_modes;
uint32_t sendevents;
BOOL modes[2] = {FALSE};
- int rc;
sendevent_modes = libinput_device_config_send_events_get_modes(device);
if (sendevent_modes == LIBINPUT_CONFIG_SEND_EVENTS_ENABLED)
@@ -1836,15 +1893,12 @@
if (sendevent_modes & LIBINPUT_CONFIG_SEND_EVENTS_DISABLED_ON_EXTERNAL_MOUSE)
modes[1] = TRUE;
- prop_sendevents_available = MakeAtom(LIBINPUT_PROP_SENDEVENTS_AVAILABLE,
- strlen(LIBINPUT_PROP_SENDEVENTS_AVAILABLE),
- TRUE);
- rc = XIChangeDeviceProperty(dev, prop_sendevents_available,
- XA_INTEGER, 8,
- PropModeReplace, 2, modes, FALSE);
- if (rc != Success)
+ prop_sendevents_available = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_SENDEVENTS_AVAILABLE,
+ XA_INTEGER, 8,
+ 2, modes);
+ if (!prop_sendevents_available)
return;
- XISetDevicePropertyDeletable(dev, prop_sendevents_available, FALSE);
memset(modes, 0, sizeof(modes));
sendevents = driver_data->options.sendevents;
@@ -1858,15 +1912,25 @@
break;
}
- prop_sendevents_enabled = MakeAtom(LIBINPUT_PROP_SENDEVENTS_ENABLED,
- strlen(LIBINPUT_PROP_SENDEVENTS_ENABLED),
- TRUE);
- rc = XIChangeDeviceProperty(dev, prop_sendevents_enabled,
- XA_INTEGER, 8,
- PropModeReplace, 2, modes, FALSE);
- if (rc != Success)
+ prop_sendevents_enabled = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_SENDEVENTS_ENABLED,
+ XA_INTEGER, 8,
+ 2, modes);
+
+ if (!prop_sendevents_enabled)
return;
- XISetDevicePropertyDeletable(dev, prop_sendevents_enabled, FALSE);
+
+ memset(modes, 0, sizeof(modes));
+ sendevent_modes = libinput_device_config_send_events_get_default_mode(device);
+ if (sendevent_modes & LIBINPUT_CONFIG_SEND_EVENTS_DISABLED)
+ modes[0] = TRUE;
+ if (sendevent_modes & LIBINPUT_CONFIG_SEND_EVENTS_DISABLED_ON_EXTERNAL_MOUSE)
+ modes[1] = TRUE;
+
+ prop_sendevents_default = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_SENDEVENTS_ENABLED_DEFAULT,
+ XA_INTEGER, 8,
+ 2, modes);
}
static void
@@ -1875,20 +1939,22 @@
struct libinput_device *device)
{
BOOL left_handed = driver_data->options.left_handed;
- int rc;
if (!libinput_device_config_left_handed_is_available(device))
return;
- prop_left_handed = MakeAtom(LIBINPUT_PROP_LEFT_HANDED,
- strlen(LIBINPUT_PROP_LEFT_HANDED),
- TRUE);
- rc = XIChangeDeviceProperty(dev, prop_left_handed,
- XA_INTEGER, 8,
- PropModeReplace, 1, &left_handed, FALSE);
- if (rc != Success)
+ prop_left_handed = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_LEFT_HANDED,
+ XA_INTEGER, 8,
+ 1, &left_handed);
+ if (!prop_left_handed)
return;
- XISetDevicePropertyDeletable(dev, prop_left_handed, FALSE);
+
+ left_handed = libinput_device_config_left_handed_get_default(device);
+ prop_left_handed_default = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_LEFT_HANDED_DEFAULT,
+ XA_INTEGER, 8,
+ 1, &left_handed);
}
static void
@@ -1899,7 +1965,6 @@
uint32_t scroll_methods;
enum libinput_config_scroll_method method;
BOOL methods[3] = {FALSE};
- int rc;
scroll_methods = libinput_device_config_scroll_get_methods(device);
if (scroll_methods == LIBINPUT_CONFIG_SCROLL_NO_SCROLL)
@@ -1912,21 +1977,13 @@
if (scroll_methods & LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN)
methods[2] = TRUE;
- prop_scroll_methods_available =
- MakeAtom(LIBINPUT_PROP_SCROLL_METHODS_AVAILABLE,
- strlen(LIBINPUT_PROP_SCROLL_METHODS_AVAILABLE),
- TRUE);
- rc = XIChangeDeviceProperty(dev,
- prop_scroll_methods_available,
- XA_INTEGER, 8,
- PropModeReplace,
- ARRAY_SIZE(methods),
- &methods, FALSE);
- if (rc != Success)
+ prop_scroll_methods_available = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_SCROLL_METHODS_AVAILABLE,
+ XA_INTEGER, 8,
+ ARRAY_SIZE(methods),
+ &methods);
+ if (!prop_scroll_methods_available)
return;
- XISetDevicePropertyDeletable(dev,
- prop_scroll_methods_available,
- FALSE);
memset(methods, 0, sizeof(methods));
@@ -1945,38 +2002,47 @@
break;
}
- prop_scroll_method_enabled =
- MakeAtom(LIBINPUT_PROP_SCROLL_METHOD_ENABLED,
- strlen(LIBINPUT_PROP_SCROLL_METHOD_ENABLED),
- TRUE);
- rc = XIChangeDeviceProperty(dev,
- prop_scroll_method_enabled,
- XA_INTEGER, 8,
- PropModeReplace,
- ARRAY_SIZE(methods),
- &methods, FALSE);
- if (rc != Success)
+ prop_scroll_method_enabled = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_SCROLL_METHOD_ENABLED,
+ XA_INTEGER, 8,
+ ARRAY_SIZE(methods),
+ &methods);
+ if (!prop_scroll_method_enabled)
+ return;
+
+ scroll_methods = libinput_device_config_scroll_get_default_method(device);
+ if (scroll_methods == LIBINPUT_CONFIG_SCROLL_NO_SCROLL)
return;
- XISetDevicePropertyDeletable(dev,
- prop_scroll_method_enabled,
- FALSE);
+ if (scroll_methods & LIBINPUT_CONFIG_SCROLL_2FG)
+ methods[0] = TRUE;
+ if (scroll_methods & LIBINPUT_CONFIG_SCROLL_EDGE)
+ methods[1] = TRUE;
+ if (scroll_methods & LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN)
+ methods[2] = TRUE;
+ prop_scroll_method_default = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_SCROLL_METHOD_ENABLED_DEFAULT,
+ XA_INTEGER, 8,
+ ARRAY_SIZE(methods),
+ &methods);
/* Scroll button */
if (libinput_device_config_scroll_get_methods(device) &
LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN) {
CARD32 scroll_button = driver_data->options.scroll_button;
- prop_scroll_button = MakeAtom(LIBINPUT_PROP_SCROLL_BUTTON,
- strlen(LIBINPUT_PROP_SCROLL_BUTTON),
- TRUE);
- rc = XIChangeDeviceProperty(dev, prop_scroll_button,
- XA_CARDINAL, 32,
- PropModeReplace, 1,
- &scroll_button, FALSE);
- if (rc != Success)
+ prop_scroll_button = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_SCROLL_BUTTON,
+ XA_CARDINAL, 32,
+ 1, &scroll_button);
+ if (!prop_scroll_button)
return;
- XISetDevicePropertyDeletable(dev, prop_scroll_button, FALSE);
+
+ scroll_button = libinput_device_config_scroll_get_default_button(device);
+ prop_scroll_button_default = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_SCROLL_BUTTON_DEFAULT,
+ XA_CARDINAL, 32,
+ 1, &scroll_button);
}
}
@@ -1988,7 +2054,6 @@
uint32_t click_methods;
enum libinput_config_click_method method;
BOOL methods[2] = {FALSE};
- int rc;
click_methods = libinput_device_config_click_get_methods(device);
if (click_methods == LIBINPUT_CONFIG_CLICK_METHOD_NONE)
@@ -1999,21 +2064,13 @@
if (click_methods & LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER)
methods[1] = TRUE;
- prop_click_methods_available =
- MakeAtom(LIBINPUT_PROP_CLICK_METHODS_AVAILABLE,
- strlen(LIBINPUT_PROP_CLICK_METHODS_AVAILABLE),
- TRUE);
- rc = XIChangeDeviceProperty(dev,
- prop_click_methods_available,
- XA_INTEGER, 8,
- PropModeReplace,
- ARRAY_SIZE(methods),
- &methods, FALSE);
- if (rc != Success)
+ prop_click_methods_available = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_CLICK_METHODS_AVAILABLE,
+ XA_INTEGER, 8,
+ ARRAY_SIZE(methods),
+ &methods);
+ if (!prop_click_methods_available)
return;
- XISetDevicePropertyDeletable(dev,
- prop_click_methods_available,
- FALSE);
memset(methods, 0, sizeof(methods));
@@ -2029,22 +2086,34 @@
break;
}
- prop_click_method_enabled =
- MakeAtom(LIBINPUT_PROP_CLICK_METHOD_ENABLED,
- strlen(LIBINPUT_PROP_CLICK_METHOD_ENABLED),
- TRUE);
- rc = XIChangeDeviceProperty(dev,
- prop_click_method_enabled,
- XA_INTEGER, 8,
- PropModeReplace,
- ARRAY_SIZE(methods),
- &methods, FALSE);
- if (rc != Success)
+ prop_click_method_enabled = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_CLICK_METHOD_ENABLED,
+ XA_INTEGER, 8,
+ ARRAY_SIZE(methods),
+ &methods);
+
+ if (!prop_click_method_enabled)
return;
- XISetDevicePropertyDeletable(dev,
- prop_click_method_enabled,
- FALSE);
+ memset(methods, 0, sizeof(methods));
+
+ method = libinput_device_config_click_get_default_method(device);
+ switch(method) {
+ case LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS:
+ methods[0] = TRUE;
+ break;
+ case LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER:
+ methods[1] = TRUE;
+ break;
+ default:
+ break;
+ }
+
+ prop_click_method_default = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_CLICK_METHOD_ENABLED_DEFAULT,
+ XA_INTEGER, 8,
+ ARRAY_SIZE(methods),
+ &methods);
}
static void