[mutter/wip/tablet-protocol-v2: 43/48] wayland: Store mode switch button in MetaWaylandTabletPad
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/tablet-protocol-v2: 43/48] wayland: Store mode switch button in MetaWaylandTabletPad
- Date: Fri, 13 May 2016 18:11:05 +0000 (UTC)
commit 6b0a3bd991ce14212e9e075aea2f65bacdb95565
Author: Carlos Garnacho <carlosg gnome org>
Date: Fri May 13 14:59:46 2016 +0200
wayland: Store mode switch button in MetaWaylandTabletPad
Fetch this info from libwacom.
src/wayland/meta-wayland-tablet-pad.c | 22 ++++++++++++++++++++++
src/wayland/meta-wayland-tablet-pad.h | 1 +
2 files changed, 23 insertions(+), 0 deletions(-)
---
diff --git a/src/wayland/meta-wayland-tablet-pad.c b/src/wayland/meta-wayland-tablet-pad.c
index bc7c5d1..0e4af32 100644
--- a/src/wayland/meta-wayland-tablet-pad.c
+++ b/src/wayland/meta-wayland-tablet-pad.c
@@ -60,6 +60,21 @@ pad_handle_focus_surface_destroy (struct wl_listener *listener,
}
#ifdef HAVE_LIBWACOM
+static gint
+get_mode_switch_button (WacomDevice *wacom_device,
+ WacomButtonFlags flags)
+{
+ gint i, n_buttons = libwacom_get_num_buttons (wacom_device);
+
+ for (i = 0; i < n_buttons; i++)
+ {
+ if (libwacom_get_button_flag (wacom_device, 'A' + i) & flags)
+ return i;
+ }
+
+ return -1;
+}
+
static void
meta_wayland_tablet_pad_fill_wacom_info (MetaWaylandTabletPad *pad)
{
@@ -76,19 +91,26 @@ meta_wayland_tablet_pad_fill_wacom_info (MetaWaylandTabletPad *pad)
if (libwacom_get_ring_num_modes (wacom_device) > n_modes)
{
n_modes = libwacom_get_ring_num_modes (wacom_device);
+ mode_switch_button =
+ get_mode_switch_button (wacom_device, WACOM_BUTTON_RING_MODESWITCH);
}
if (libwacom_get_ring2_num_modes (wacom_device))
{
n_modes = libwacom_get_ring2_num_modes (wacom_device);
+ mode_switch_button =
+ get_mode_switch_button (wacom_device, WACOM_BUTTON_RING2_MODESWITCH);
}
if (libwacom_get_strips_num_modes (wacom_device))
{
n_modes = libwacom_get_strips_num_modes (wacom_device);
+ mode_switch_button =
+ get_mode_switch_button (wacom_device, WACOM_BUTTON_TOUCHSTRIPS_MODESWITCH);
}
pad->n_modes = n_modes;
+ pad->mode_switch_button = mode_switch_button;
}
#endif
diff --git a/src/wayland/meta-wayland-tablet-pad.h b/src/wayland/meta-wayland-tablet-pad.h
index c3c173c..3a9f419 100644
--- a/src/wayland/meta-wayland-tablet-pad.h
+++ b/src/wayland/meta-wayland-tablet-pad.h
@@ -43,6 +43,7 @@ struct _MetaWaylandTabletPad
uint32_t n_modes;
uint32_t current_mode;
+ uint32_t mode_switch_button;
GList *strips;
GList *rings;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]