summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2019-03-11 18:11:01 +1000
committerFurkan Sahin <furkan-dev@proton.me>2019-03-11 18:11:01 +1000
commit7476e5eeb4ee98db326a68e91c29d5b87bde606a (patch)
treefda2fd88b1afe184e9658cca260383ed4a9b1e1c
parentae9f22c6a71ef069bd5a2c0b42099c627dee6369 (diff)
Fix click behaviour1.0
By the time seatop_allows_events was called, seatop_impl was already NULL, causing the function to always return false. This means a press event was sent to clients without a corresponding release event. This patch moves the call to seatop_finish to after the seatop_allows_events check.
-rw-r--r--sway/input/cursor.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sway/input/cursor.c b/sway/input/cursor.c
index ef03c6aa..d531a20e 100644
--- a/sway/input/cursor.c
+++ b/sway/input/cursor.c
@@ -605,9 +605,6 @@ void dispatch_cursor_button(struct sway_cursor *cursor,
// Handle existing seat operation
if (seat_doing_seatop(seat)) {
- if (button == seat->seatop_button && state == WLR_BUTTON_RELEASED) {
- seatop_finish(seat, time_msec);
- }
if (state == WLR_BUTTON_PRESSED) {
state_add_button(cursor, button);
} else {
@@ -616,6 +613,9 @@ void dispatch_cursor_button(struct sway_cursor *cursor,
if (seatop_allows_events(seat)) {
seat_pointer_notify_button(seat, time_msec, button, state);
}
+ if (button == seat->seatop_button && state == WLR_BUTTON_RELEASED) {
+ seatop_finish(seat, time_msec);
+ }
return;
}