[PATCH v3 libinput 2/2] Rename functions for left handed device configurations

Stephen Chandler Paul thatslyude at gmail.com
Tue Jan 6 18:20:22 PST 2015


Some devices require more than just flipping around the buttons, such as
tablets.
When it comes to devices like tablets, because the position of the palm rest is
on the right, the entire tablet has to be flipped around in order to be usable
by lefties. As such, this requires that we reverse the coordinates of the
tablets in addition to flipping the buttons on the tablet. As such, renaming
these functions so that they aren't specific to devices where only the buttons
are flipped seems appropriate.

Signed-off-by: Stephen Chandler Paul <thatslyude at gmail.com>
---

Fixed the naming scheme and changed it from
libinput_device_config_foo_left_handed to
libinput_device_config_left_handed_foo. Also fixed a small indenting error
caused by the patch.

 src/evdev-mt-touchpad.c |  4 ++--
 src/evdev.c             | 34 +++++++++++++++---------------
 src/evdev.h             | 12 +++++------
 src/libinput.c          | 16 +++++++-------
 src/libinput.h          | 55 ++++++++++++++++++++++++-------------------------
 src/libinput.sym        |  8 +++----
 test/pointer.c          | 12 +++++------
 test/touch.c            |  8 +++----
 test/touchpad.c         | 18 ++++++++--------
 tools/event-debug.c     |  2 +-
 tools/shared.c          |  2 +-
 11 files changed, 85 insertions(+), 86 deletions(-)

diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
index 7e8306d..34b107e 100644
--- a/src/evdev-mt-touchpad.c
+++ b/src/evdev-mt-touchpad.c
@@ -1310,7 +1310,7 @@ tp_change_to_left_handed(struct evdev_device *device)
 {
 	struct tp_dispatch *tp = (struct tp_dispatch *)device->dispatch;
 
-	if (device->buttons.want_left_handed == device->buttons.left_handed)
+	if (device->left_handed.want_enabled == device->left_handed.enabled)
 		return;
 
 	if (tp->buttons.state & 0x3) /* BTN_LEFT|BTN_RIGHT */
@@ -1319,7 +1319,7 @@ tp_change_to_left_handed(struct evdev_device *device)
 	/* tapping and clickfinger aren't affected by left-handed config,
 	 * so checking physical buttons is enough */
 
-	device->buttons.left_handed = device->buttons.want_left_handed;
+	device->left_handed.enabled = device->left_handed.want_enabled;
 }
 
 struct model_lookup_t {
diff --git a/src/evdev.c b/src/evdev.c
index 1718491..1fc1d6b 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -119,8 +119,8 @@ evdev_pointer_notify_button(struct evdev_device *device,
 		pointer_notify_button(&device->base, time, button, state);
 
 		if (state == LIBINPUT_BUTTON_STATE_RELEASED &&
-		    device->buttons.change_to_left_handed)
-			device->buttons.change_to_left_handed(device);
+		    device->left_handed.change_to_enabled)
+			device->left_handed.change_to_enabled(device);
 
 		if (state == LIBINPUT_BUTTON_STATE_RELEASED &&
 		    device->scroll.change_scroll_method)
@@ -810,13 +810,13 @@ evdev_left_handed_has(struct libinput_device *device)
 static void
 evdev_change_to_left_handed(struct evdev_device *device)
 {
-	if (device->buttons.want_left_handed == device->buttons.left_handed)
+	if (device->left_handed.want_enabled == device->left_handed.enabled)
 		return;
 
 	if (evdev_any_button_down(device))
 		return;
 
-	device->buttons.left_handed = device->buttons.want_left_handed;
+	device->left_handed.enabled = device->left_handed.want_enabled;
 }
 
 static enum libinput_config_status
@@ -824,9 +824,9 @@ evdev_left_handed_set(struct libinput_device *device, int left_handed)
 {
 	struct evdev_device *evdev_device = (struct evdev_device *)device;
 
-	evdev_device->buttons.want_left_handed = left_handed ? true : false;
+	evdev_device->left_handed.want_enabled = left_handed ? true : false;
 
-	evdev_device->buttons.change_to_left_handed(evdev_device);
+	evdev_device->left_handed.change_to_enabled(evdev_device);
 
 	return LIBINPUT_CONFIG_STATUS_SUCCESS;
 }
@@ -838,7 +838,7 @@ evdev_left_handed_get(struct libinput_device *device)
 
 	/* return the wanted configuration, even if it hasn't taken
 	 * effect yet! */
-	return evdev_device->buttons.want_left_handed;
+	return evdev_device->left_handed.want_enabled;
 }
 
 static int
@@ -851,14 +851,14 @@ int
 evdev_init_left_handed(struct evdev_device *device,
 		       void (*change_to_left_handed)(struct evdev_device *))
 {
-	device->buttons.config_left_handed.has = evdev_left_handed_has;
-	device->buttons.config_left_handed.set = evdev_left_handed_set;
-	device->buttons.config_left_handed.get = evdev_left_handed_get;
-	device->buttons.config_left_handed.get_default = evdev_left_handed_get_default;
-	device->base.config.left_handed = &device->buttons.config_left_handed;
-	device->buttons.left_handed = false;
-	device->buttons.want_left_handed = false;
-	device->buttons.change_to_left_handed = change_to_left_handed;
+	device->left_handed.config.has = evdev_left_handed_has;
+	device->left_handed.config.set = evdev_left_handed_set;
+	device->left_handed.config.get = evdev_left_handed_get;
+	device->left_handed.config.get_default = evdev_left_handed_get_default;
+	device->base.config.left_handed = &device->left_handed.config;
+	device->left_handed.enabled = false;
+	device->left_handed.want_enabled = false;
+	device->left_handed.change_to_enabled = change_to_left_handed;
 
 	return 0;
 }
@@ -1052,7 +1052,7 @@ fallback_dispatch_create(struct libinput_device *device)
 
 	dispatch->interface = &fallback_interface;
 
-	if (evdev_device->buttons.want_left_handed &&
+	if (evdev_device->left_handed.want_enabled &&
 	    evdev_init_left_handed(evdev_device,
 				   evdev_change_to_left_handed) == -1) {
 		free(dispatch);
@@ -1442,7 +1442,7 @@ evdev_configure_device(struct evdev_device *device)
 			 has_button ? " button" : "");
 
 		/* want left-handed config option */
-		device->buttons.want_left_handed = true;
+		device->left_handed.want_enabled = true;
 		/* want natural-scroll config option */
 		device->scroll.natural_scrolling_enabled = true;
 	}
diff --git a/src/evdev.h b/src/evdev.h
index a75dd13..b7e7848 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -141,15 +141,15 @@ struct evdev_device {
 	uint8_t key_count[KEY_CNT];
 
 	struct {
-		struct libinput_device_config_left_handed config_left_handed;
+		struct libinput_device_config_left_handed config;
 		/* left-handed currently enabled */
-		bool left_handed;
+		bool enabled;
 		/* set during device init if we want left_handed config,
 		 * used at runtime to delay the effect until buttons are up */
-		bool want_left_handed;
+		bool want_enabled;
 		/* Checks if buttons are down and commits the setting */
-		void (*change_to_left_handed)(struct evdev_device *device);
-	} buttons;
+		void (*change_to_enabled)(struct evdev_device *device);
+	} left_handed;
 
 	int dpi; /* HW resolution */
 	struct ratelimit syn_drop_limit; /* ratelimit for SYN_DROPPED logging */
@@ -329,7 +329,7 @@ static inline uint32_t
 evdev_to_left_handed(struct evdev_device *device,
 		     uint32_t button)
 {
-	if (device->buttons.left_handed) {
+	if (device->left_handed.enabled) {
 		if (button == BTN_LEFT)
 			return BTN_RIGHT;
 		else if (button == BTN_RIGHT)
diff --git a/src/libinput.c b/src/libinput.c
index 426c306..00aa6b6 100644
--- a/src/libinput.c
+++ b/src/libinput.c
@@ -1547,7 +1547,7 @@ libinput_device_config_scroll_get_default_natural_scroll_enabled(struct libinput
 }
 
 LIBINPUT_EXPORT int
-libinput_device_config_buttons_has_left_handed(struct libinput_device *device)
+libinput_device_config_has_left_handed(struct libinput_device *device)
 {
 	if (!device->config.left_handed)
 		return 0;
@@ -1556,28 +1556,28 @@ libinput_device_config_buttons_has_left_handed(struct libinput_device *device)
 }
 
 LIBINPUT_EXPORT enum libinput_config_status
-libinput_device_config_buttons_set_left_handed(struct libinput_device *device,
-					       int left_handed)
+libinput_device_config_left_handed_set(struct libinput_device *device,
+				       int left_handed)
 {
-	if (!libinput_device_config_buttons_has_left_handed(device))
+	if (!libinput_device_config_has_left_handed(device))
 		return LIBINPUT_CONFIG_STATUS_UNSUPPORTED;
 
 	return device->config.left_handed->set(device, left_handed);
 }
 
 LIBINPUT_EXPORT int
-libinput_device_config_buttons_get_left_handed(struct libinput_device *device)
+libinput_device_config_left_handed_get(struct libinput_device *device)
 {
-	if (!libinput_device_config_buttons_has_left_handed(device))
+	if (!libinput_device_config_has_left_handed(device))
 		return 0;
 
 	return device->config.left_handed->get(device);
 }
 
 LIBINPUT_EXPORT int
-libinput_device_config_buttons_get_default_left_handed(struct libinput_device *device)
+libinput_device_config_left_handed_get_default(struct libinput_device *device)
 {
-	if (!libinput_device_config_buttons_has_left_handed(device))
+	if (!libinput_device_config_has_left_handed(device))
 		return 0;
 
 	return device->config.left_handed->get_default(device);
diff --git a/src/libinput.h b/src/libinput.h
index 7719b8c..dafa0ad 100644
--- a/src/libinput.h
+++ b/src/libinput.h
@@ -2076,33 +2076,32 @@ libinput_device_config_scroll_get_default_natural_scroll_enabled(struct libinput
 /**
  * @ingroup config
  *
- * Check if a device has a button configuration that supports left-handed
- * usage.
+ * Check if a device has a configuration that supports left-handed usage.
  *
  * @param device The device to configure
  * @return Non-zero if the device can be set to left-handed, or zero
  * otherwise
  *
- * @see libinput_device_config_buttons_set_left_handed
- * @see libinput_device_config_buttons_get_left_handed
- * @see libinput_device_config_buttons_get_default_left_handed
+ * @see libinput_device_config_left_handed_set
+ * @see libinput_device_config_left_handed_get
+ * @see libinput_device_config_left_handed_get_default
  */
 int
-libinput_device_config_buttons_has_left_handed(struct libinput_device *device);
+libinput_device_config_has_left_handed(struct libinput_device *device);
 
 /**
  * @ingroup config
  *
- * Set the left-handed configuration of the device. A device in left-handed
- * mode sends a left button event instead of the right button and vice
- * versa.
+ * Set the left-handed configuration of the device. For example, a pointing
+ * device may reverse it's buttons and send a right button click when the
+ * left button is pressed, and vice versa.
  *
- * The exact button behavior is device-dependent. On a mouse and most
- * pointing devices, left and right buttons are swapped but the middle
- * button is unmodified. On a touchpad, physical buttons (if present) are
- * swapped. On a clickpad, the top and bottom software-emulated buttons are
- * swapped where present, the main area of the touchpad remains a left
- * button. Tapping and clickfinger behavior is not affected by this setting.
+ * The exact behavior is device-dependent. On a mouse and most pointing
+ * devices, left and right buttons are swapped but the middle button is
+ * unmodified. On a touchpad, physical buttons (if present) are swapped. On a
+ * clickpad, the top and bottom software-emulated buttons are swapped where
+ * present, the main area of the touchpad remains a left button. Tapping and
+ * clickfinger behavior is not affected by this setting.
  *
  * Changing the left-handed configuration of a device may not take effect
  * until all buttons have been logically released.
@@ -2111,13 +2110,13 @@ libinput_device_config_buttons_has_left_handed(struct libinput_device *device);
  * @param left_handed Zero to disable, non-zero to enable left-handed mode
  * @return A configuration status code
  *
- * @see libinput_device_config_buttons_has_left_handed
- * @see libinput_device_config_buttons_get_left_handed
- * @see libinput_device_config_buttons_get_default_left_handed
+ * @see libinput_device_config_has_left_handed
+ * @see libinput_device_config_left_handed_get
+ * @see libinput_device_config_left_handed_get_default
  */
 enum libinput_config_status
-libinput_device_config_buttons_set_left_handed(struct libinput_device *device,
-					       int left_handed);
+libinput_device_config_left_handed_set(struct libinput_device *device,
+				       int left_handed);
 
 /**
  * @ingroup config
@@ -2128,12 +2127,12 @@ libinput_device_config_buttons_set_left_handed(struct libinput_device *device,
  * @return Zero if the device is in right-handed mode, non-zero if the
  * device is in left-handed mode
  *
- * @see libinput_device_config_buttons_has_left_handed
- * @see libinput_device_config_buttons_set_left_handed
- * @see libinput_device_config_buttons_get_default_left_handed
+ * @see libinput_device_config_has_left_handed
+ * @see libinput_device_config_left_handed_set
+ * @see libinput_device_config_left_handed_get_default
  */
 int
-libinput_device_config_buttons_get_left_handed(struct libinput_device *device);
+libinput_device_config_left_handed_get(struct libinput_device *device);
 
 /**
  * @ingroup config
@@ -2144,12 +2143,12 @@ libinput_device_config_buttons_get_left_handed(struct libinput_device *device);
  * @return Zero if the device is in right-handed mode by default, or non-zero
  * if the device is in left-handed mode by default
  *
- * @see libinput_device_config_buttons_has_left_handed
- * @see libinput_device_config_buttons_set_left_handed
- * @see libinput_device_config_buttons_get_left_handed
+ * @see libinput_device_config_has_left_handed
+ * @see libinput_device_config_left_handed_set
+ * @see libinput_device_config_left_handed_get
  */
 int
-libinput_device_config_buttons_get_default_left_handed(struct libinput_device *device);
+libinput_device_config_left_handed_get_default(struct libinput_device *device);
 
 /**
  * @ingroup config
diff --git a/src/libinput.sym b/src/libinput.sym
index 826bfde..1ee43c5 100644
--- a/src/libinput.sym
+++ b/src/libinput.sym
@@ -7,10 +7,10 @@ global:
 	libinput_device_config_accel_get_speed;
 	libinput_device_config_accel_is_available;
 	libinput_device_config_accel_set_speed;
-	libinput_device_config_buttons_get_default_left_handed;
-	libinput_device_config_buttons_get_left_handed;
-	libinput_device_config_buttons_has_left_handed;
-	libinput_device_config_buttons_set_left_handed;
+	libinput_device_config_left_handed_get_default;
+	libinput_device_config_left_handed_get;
+	libinput_device_config_has_left_handed;
+	libinput_device_config_left_handed_set;
 	libinput_device_config_calibration_get_default_matrix;
 	libinput_device_config_calibration_get_matrix;
 	libinput_device_config_calibration_has_matrix;
diff --git a/test/pointer.c b/test/pointer.c
index b9bd3cc..751f7be 100644
--- a/test/pointer.c
+++ b/test/pointer.c
@@ -569,13 +569,13 @@ START_TEST(pointer_left_handed_defaults)
 	struct libinput_device *d = dev->libinput_device;
 	int rc;
 
-	rc = libinput_device_config_buttons_has_left_handed(d);
+	rc = libinput_device_config_has_left_handed(d);
 	ck_assert_int_ne(rc, 0);
 
-	rc = libinput_device_config_buttons_get_left_handed(d);
+	rc = libinput_device_config_left_handed_get(d);
 	ck_assert_int_eq(rc, 0);
 
-	rc = libinput_device_config_buttons_get_default_left_handed(d);
+	rc = libinput_device_config_left_handed_get_default(d);
 	ck_assert_int_eq(rc, 0);
 }
 END_TEST
@@ -587,7 +587,7 @@ START_TEST(pointer_left_handed)
 	struct libinput *li = dev->libinput;
 	enum libinput_config_status status;
 
-	status = libinput_device_config_buttons_set_left_handed(d, 1);
+	status = libinput_device_config_left_handed_set(d, 1);
 	ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
 
 	litest_drain_events(li);
@@ -637,7 +637,7 @@ START_TEST(pointer_left_handed_during_click)
 	libinput_dispatch(li);
 
 	/* Change while button is down, expect correct release event */
-	status = libinput_device_config_buttons_set_left_handed(d, 1);
+	status = libinput_device_config_left_handed_set(d, 1);
 	ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
 
 	litest_button_click(dev, BTN_LEFT, 0);
@@ -662,7 +662,7 @@ START_TEST(pointer_left_handed_during_click_multiple_buttons)
 	litest_button_click(dev, BTN_LEFT, 1);
 	libinput_dispatch(li);
 
-	status = libinput_device_config_buttons_set_left_handed(d, 1);
+	status = libinput_device_config_left_handed_set(d, 1);
 	ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
 
 	/* No left-handed until all buttons were down */
diff --git a/test/touch.c b/test/touch.c
index 5c9b72a..7260ad6 100644
--- a/test/touch.c
+++ b/test/touch.c
@@ -408,16 +408,16 @@ START_TEST(touch_no_left_handed)
 	enum libinput_config_status status;
 	int rc;
 
-	rc = libinput_device_config_buttons_has_left_handed(d);
+	rc = libinput_device_config_has_left_handed(d);
 	ck_assert_int_eq(rc, 0);
 
-	rc = libinput_device_config_buttons_get_left_handed(d);
+	rc = libinput_device_config_left_handed_get(d);
 	ck_assert_int_eq(rc, 0);
 
-	rc = libinput_device_config_buttons_get_default_left_handed(d);
+	rc = libinput_device_config_left_handed_get_default(d);
 	ck_assert_int_eq(rc, 0);
 
-	status = libinput_device_config_buttons_set_left_handed(d, 0);
+	status = libinput_device_config_left_handed_set(d, 0);
 	ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_UNSUPPORTED);
 }
 END_TEST
diff --git a/test/touchpad.c b/test/touchpad.c
index 422e8fe..f2c3f32 100644
--- a/test/touchpad.c
+++ b/test/touchpad.c
@@ -1915,7 +1915,7 @@ START_TEST(touchpad_left_handed)
 	struct libinput *li = dev->libinput;
 	enum libinput_config_status status;
 
-	status = libinput_device_config_buttons_set_left_handed(d, 1);
+	status = libinput_device_config_left_handed_set(d, 1);
 	ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
 
 	litest_drain_events(li);
@@ -1960,7 +1960,7 @@ START_TEST(touchpad_left_handed_clickpad)
 	struct libinput *li = dev->libinput;
 	enum libinput_config_status status;
 
-	status = libinput_device_config_buttons_set_left_handed(d, 1);
+	status = libinput_device_config_left_handed_set(d, 1);
 	ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
 
 	litest_drain_events(li);
@@ -2011,7 +2011,7 @@ START_TEST(touchpad_left_handed_clickfinger)
 	struct libinput *li = dev->libinput;
 	enum libinput_config_status status;
 
-	status = libinput_device_config_buttons_set_left_handed(d, 1);
+	status = libinput_device_config_left_handed_set(d, 1);
 	ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
 
 	litest_drain_events(li);
@@ -2054,7 +2054,7 @@ START_TEST(touchpad_left_handed_tapping)
 
 	libinput_device_config_tap_set_enabled(dev->libinput_device,
 					       LIBINPUT_CONFIG_TAP_ENABLED);
-	status = libinput_device_config_buttons_set_left_handed(d, 1);
+	status = libinput_device_config_left_handed_set(d, 1);
 	ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
 
 	litest_drain_events(li);
@@ -2085,7 +2085,7 @@ START_TEST(touchpad_left_handed_tapping_2fg)
 
 	libinput_device_config_tap_set_enabled(dev->libinput_device,
 					       LIBINPUT_CONFIG_TAP_ENABLED);
-	status = libinput_device_config_buttons_set_left_handed(d, 1);
+	status = libinput_device_config_left_handed_set(d, 1);
 	ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
 
 	litest_drain_events(li);
@@ -2121,7 +2121,7 @@ START_TEST(touchpad_left_handed_delayed)
 	litest_button_click(dev, BTN_LEFT, 1);
 	libinput_dispatch(li);
 
-	status = libinput_device_config_buttons_set_left_handed(d, 1);
+	status = libinput_device_config_left_handed_set(d, 1);
 	ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
 
 	litest_button_click(dev, BTN_LEFT, 0);
@@ -2138,7 +2138,7 @@ START_TEST(touchpad_left_handed_delayed)
 	litest_button_click(dev, BTN_LEFT, 1);
 	libinput_dispatch(li);
 
-	status = libinput_device_config_buttons_set_left_handed(d, 0);
+	status = libinput_device_config_left_handed_set(d, 0);
 	ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
 
 	litest_button_click(dev, BTN_RIGHT, 0);
@@ -2171,7 +2171,7 @@ START_TEST(touchpad_left_handed_clickpad_delayed)
 	litest_button_click(dev, BTN_LEFT, 1);
 	libinput_dispatch(li);
 
-	status = libinput_device_config_buttons_set_left_handed(d, 1);
+	status = libinput_device_config_left_handed_set(d, 1);
 	ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
 
 	litest_button_click(dev, BTN_LEFT, 0);
@@ -2190,7 +2190,7 @@ START_TEST(touchpad_left_handed_clickpad_delayed)
 	litest_button_click(dev, BTN_LEFT, 1);
 	libinput_dispatch(li);
 
-	status = libinput_device_config_buttons_set_left_handed(d, 0);
+	status = libinput_device_config_left_handed_set(d, 0);
 	ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
 
 	litest_button_click(dev, BTN_LEFT, 0);
diff --git a/tools/event-debug.c b/tools/event-debug.c
index 8fbea24..4f1add5 100644
--- a/tools/event-debug.c
+++ b/tools/event-debug.c
@@ -146,7 +146,7 @@ print_device_notify(struct libinput_event *ev)
 
 	if (libinput_device_config_tap_get_finger_count((dev)))
 	    printf(" tap");
-	if (libinput_device_config_buttons_has_left_handed((dev)))
+	if (libinput_device_config_has_left_handed((dev)))
 	    printf(" left");
 	if (libinput_device_config_scroll_has_natural_scroll((dev)))
 	    printf(" scroll-nat");
diff --git a/tools/shared.c b/tools/shared.c
index 3e1368d..b4f41d0 100644
--- a/tools/shared.c
+++ b/tools/shared.c
@@ -262,5 +262,5 @@ tools_device_apply_config(struct libinput_device *device,
 		libinput_device_config_scroll_set_natural_scroll_enabled(device,
 									 options->natural_scroll);
 	if (options->left_handed != -1)
-		libinput_device_config_buttons_set_left_handed(device, options->left_handed);
+		libinput_device_config_left_handed_set(device, options->left_handed);
 }
-- 
2.0.5



More information about the wayland-devel mailing list