From 7693fdb8a78d00e25d59f6399e89ba0e98670493 Mon Sep 17 00:00:00 2001 From: Tudor Brindus Date: Mon, 4 May 2020 17:45:01 -0400 Subject: [PATCH] tablet: expose wlr_tablet_tool_v2_has_implicit_grab function This is necessary so that sway can determine when to start emulating pointer events -- it shouldn't start doing so during an implicit grab, even if the pen is over a surface that doesn't bind tablet input. Refs swaywm/sway#5302. --- include/wlr/types/wlr_tablet_v2.h | 2 ++ types/tablet_v2/wlr_tablet_v2_tool.c | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/include/wlr/types/wlr_tablet_v2.h b/include/wlr/types/wlr_tablet_v2.h index 72d3abd3..4483a578 100644 --- a/include/wlr/types/wlr_tablet_v2.h +++ b/include/wlr/types/wlr_tablet_v2.h @@ -253,6 +253,8 @@ void wlr_tablet_tool_v2_end_grab(struct wlr_tablet_v2_tablet_tool *tool); void wlr_tablet_tool_v2_start_implicit_grab(struct wlr_tablet_v2_tablet_tool *tool); +bool wlr_tablet_tool_v2_has_implicit_grab( + struct wlr_tablet_v2_tablet_tool *tool); uint32_t wlr_send_tablet_v2_tablet_pad_enter( struct wlr_tablet_v2_tablet_pad *pad, diff --git a/types/tablet_v2/wlr_tablet_v2_tool.c b/types/tablet_v2/wlr_tablet_v2_tool.c index c5fe15a7..7cb5b7e9 100644 --- a/types/tablet_v2/wlr_tablet_v2_tool.c +++ b/types/tablet_v2/wlr_tablet_v2_tool.c @@ -822,13 +822,14 @@ static const struct wlr_tablet_tool_v2_grab_interface .cancel = implicit_tool_cancel, }; -static bool tool_has_implicit_grab(struct wlr_tablet_v2_tablet_tool *tool) { +bool wlr_tablet_tool_v2_has_implicit_grab( + struct wlr_tablet_v2_tablet_tool *tool) { return tool->grab->interface == &implicit_tool_grab_interface; } void wlr_tablet_tool_v2_start_implicit_grab( struct wlr_tablet_v2_tablet_tool *tool) { - if (tool_has_implicit_grab(tool) || !tool->focused_surface) { + if (wlr_tablet_tool_v2_has_implicit_grab(tool) || !tool->focused_surface) { return; }