aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLibravatar Stacy Harper <contact@stacyharper.net>2021-08-21 16:04:08 +0200
committerLibravatar Simon Zeni <simon@bl4ckb0ne.ca>2023-02-20 10:35:10 -0500
commit4666d1785bfb6635e6e8604de383c91714bceebc (patch)
treee940606bd8e735c26b4239342afe88116bf9f457 /include
parentlayer-shell: enter output before surface is mapped (diff)
downloadsway-4666d1785bfb6635e6e8604de383c91714bceebc.tar.gz
sway-4666d1785bfb6635e6e8604de383c91714bceebc.tar.zst
sway-4666d1785bfb6635e6e8604de383c91714bceebc.zip
Implement seatop_touch
Atm we got issue with the touch position sent to the clients. While holding contact, leaving the initial container will continue to send motion event to the client but with the new local position from the new container. This seatop goal is to send the position of the touch event, relatively to the initial container layout position.
Diffstat (limited to 'include')
-rw-r--r--include/sway/input/cursor.h4
-rw-r--r--include/sway/input/seat.h23
2 files changed, 25 insertions, 2 deletions
diff --git a/include/sway/input/cursor.h b/include/sway/input/cursor.h
index 828ac370..4a3774d9 100644
--- a/include/sway/input/cursor.h
+++ b/include/sway/input/cursor.h
@@ -108,6 +108,10 @@ void cursor_unhide(struct sway_cursor *cursor);
108int cursor_get_timeout(struct sway_cursor *cursor); 108int cursor_get_timeout(struct sway_cursor *cursor);
109void cursor_notify_key_press(struct sway_cursor *cursor); 109void cursor_notify_key_press(struct sway_cursor *cursor);
110 110
111void pointer_motion(struct sway_cursor *cursor, uint32_t time_msec,
112 struct wlr_input_device *device, double dx, double dy,
113 double dx_unaccel, double dy_unaccel);
114
111void dispatch_cursor_button(struct sway_cursor *cursor, 115void dispatch_cursor_button(struct sway_cursor *cursor,
112 struct wlr_input_device *device, uint32_t time_msec, uint32_t button, 116 struct wlr_input_device *device, uint32_t time_msec, uint32_t button,
113 enum wlr_button_state state); 117 enum wlr_button_state state);
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h
index 4abe91f7..227da78b 100644
--- a/include/sway/input/seat.h
+++ b/include/sway/input/seat.h
@@ -4,6 +4,7 @@
4#include <wlr/types/wlr_keyboard_shortcuts_inhibit_v1.h> 4#include <wlr/types/wlr_keyboard_shortcuts_inhibit_v1.h>
5#include <wlr/types/wlr_layer_shell_v1.h> 5#include <wlr/types/wlr_layer_shell_v1.h>
6#include <wlr/types/wlr_seat.h> 6#include <wlr/types/wlr_seat.h>
7#include <wlr/types/wlr_touch.h>
7#include <wlr/util/edges.h> 8#include <wlr/util/edges.h>
8#include "sway/config.h" 9#include "sway/config.h"
9#include "sway/input/input-manager.h" 10#include "sway/input/input-manager.h"
@@ -36,6 +37,12 @@ struct sway_seatop_impl {
36 void (*swipe_end)(struct sway_seat *seat, 37 void (*swipe_end)(struct sway_seat *seat,
37 struct wlr_pointer_swipe_end_event *event); 38 struct wlr_pointer_swipe_end_event *event);
38 void (*rebase)(struct sway_seat *seat, uint32_t time_msec); 39 void (*rebase)(struct sway_seat *seat, uint32_t time_msec);
40 void (*touch_motion)(struct sway_seat *seat,
41 struct wlr_touch_motion_event *event, double lx, double ly);
42 void (*touch_up)(struct sway_seat *seat,
43 struct wlr_touch_up_event *event);
44 void (*touch_down)(struct sway_seat *seat,
45 struct wlr_touch_down_event *event, double lx, double ly);
39 void (*tablet_tool_motion)(struct sway_seat *seat, 46 void (*tablet_tool_motion)(struct sway_seat *seat,
40 struct sway_tablet_tool *tool, uint32_t time_msec); 47 struct sway_tablet_tool *tool, uint32_t time_msec);
41 void (*tablet_tool_tip)(struct sway_seat *seat, struct sway_tablet_tool *tool, 48 void (*tablet_tool_tip)(struct sway_seat *seat, struct sway_tablet_tool *tool,
@@ -256,10 +263,13 @@ enum wlr_edges find_resize_edge(struct sway_container *cont,
256void seatop_begin_default(struct sway_seat *seat); 263void seatop_begin_default(struct sway_seat *seat);
257 264
258void seatop_begin_down(struct sway_seat *seat, struct sway_container *con, 265void seatop_begin_down(struct sway_seat *seat, struct sway_container *con,
259 uint32_t time_msec, double sx, double sy); 266 double sx, double sy);
260 267
261void seatop_begin_down_on_surface(struct sway_seat *seat, 268void seatop_begin_down_on_surface(struct sway_seat *seat,
262 struct wlr_surface *surface, uint32_t time_msec, double sx, double sy); 269 struct wlr_surface *surface, double sx, double sy);
270
271void seatop_begin_touch_down(struct sway_seat *seat, struct wlr_surface *surface,
272 struct wlr_touch_down_event *event, double sx, double sy, double lx, double ly);
263 273
264void seatop_begin_move_floating(struct sway_seat *seat, 274void seatop_begin_move_floating(struct sway_seat *seat,
265 struct sway_container *con); 275 struct sway_container *con);
@@ -319,6 +329,15 @@ void seatop_swipe_update(struct sway_seat *seat,
319void seatop_swipe_end(struct sway_seat *seat, 329void seatop_swipe_end(struct sway_seat *seat,
320 struct wlr_pointer_swipe_end_event *event); 330 struct wlr_pointer_swipe_end_event *event);
321 331
332void seatop_touch_motion(struct sway_seat *seat,
333 struct wlr_touch_motion_event *event, double lx, double ly);
334
335void seatop_touch_up(struct sway_seat *seat,
336 struct wlr_touch_up_event *event);
337
338void seatop_touch_down(struct sway_seat *seat,
339 struct wlr_touch_down_event *event, double lx, double ly);
340
322void seatop_rebase(struct sway_seat *seat, uint32_t time_msec); 341void seatop_rebase(struct sway_seat *seat, uint32_t time_msec);
323 342
324/** 343/**