mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-27 22:20:24 +00:00
wayland: Translate pen buttons into button events
up/down already take GDK_BUTTON_PRIMARY, we translate BTN_STYLUS(2) into GDK_BUTTON_MIDDLE/SECONDARY.
This commit is contained in:
parent
4f6bc82052
commit
fb32f11e3d
@ -40,6 +40,7 @@
|
||||
|
||||
#include <sys/time.h>
|
||||
#include <sys/mman.h>
|
||||
#include <linux/input.h>
|
||||
|
||||
#define BUTTON_BASE (BTN_LEFT - 1) /* Used to translate to 1-indexed buttons */
|
||||
|
||||
@ -3286,6 +3287,40 @@ tablet_tool_handle_tilt (void *data,
|
||||
xtilt, ytilt));
|
||||
}
|
||||
|
||||
static void
|
||||
tablet_tool_handle_button (void *data,
|
||||
struct zwp_tablet_tool_v1 *wp_tablet_tool,
|
||||
uint32_t serial,
|
||||
uint32_t button,
|
||||
uint32_t state)
|
||||
{
|
||||
GdkWaylandTabletToolData *tool = data;
|
||||
GdkWaylandTabletData *tablet = tool->current_tablet;
|
||||
GdkEventType evtype;
|
||||
guint n_button;
|
||||
|
||||
if (!tablet->pointer_info.focus)
|
||||
return;
|
||||
|
||||
tablet->pointer_info.press_serial = serial;
|
||||
|
||||
if (button == BTN_STYLUS)
|
||||
n_button = GDK_BUTTON_SECONDARY;
|
||||
else if (button == BTN_STYLUS2)
|
||||
n_button = GDK_BUTTON_MIDDLE;
|
||||
else
|
||||
return;
|
||||
|
||||
if (state == ZWP_TABLET_TOOL_V1_BUTTON_STATE_PRESSED)
|
||||
evtype = GDK_BUTTON_PRESS;
|
||||
else if (state == ZWP_TABLET_TOOL_V1_BUTTON_STATE_RELEASED)
|
||||
evtype = GDK_BUTTON_RELEASE;
|
||||
else
|
||||
return;
|
||||
|
||||
tablet_create_button_event_frame (tablet, evtype, n_button);
|
||||
}
|
||||
|
||||
static void
|
||||
tablet_tool_handle_rotation (void *data,
|
||||
struct zwp_tablet_tool_v1 *wp_tablet_tool,
|
||||
@ -3353,11 +3388,6 @@ tablet_tool_handle_frame (void *data,
|
||||
gdk_wayland_tablet_flush_frame_event (tablet, time);
|
||||
}
|
||||
|
||||
static void
|
||||
tablet_handler_placeholder ()
|
||||
{
|
||||
}
|
||||
|
||||
static const struct zwp_tablet_tool_v1_listener tablet_tool_listener = {
|
||||
tablet_tool_handle_type,
|
||||
tablet_tool_handle_hardware_serial,
|
||||
@ -3376,7 +3406,7 @@ static const struct zwp_tablet_tool_v1_listener tablet_tool_listener = {
|
||||
tablet_tool_handle_rotation,
|
||||
tablet_tool_handle_slider,
|
||||
tablet_tool_handle_wheel,
|
||||
tablet_handler_placeholder, /* button_state */
|
||||
tablet_tool_handle_button,
|
||||
tablet_tool_handle_frame,
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user