aboutsummaryrefslogtreecommitdiffstats
path: root/sway/input/cursor.c
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-10-04 20:57:03 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-10-04 20:57:03 +1000
commit4feedbf7cf5e90574953aea81f7a6583135246c4 (patch)
tree0d4a9d77e5c3112cc9ba9494dd496a33beab1da2 /sway/input/cursor.c
parentMerge pull request #2759 from minus7/fix-view-container-null (diff)
downloadsway-4feedbf7cf5e90574953aea81f7a6583135246c4.tar.gz
sway-4feedbf7cf5e90574953aea81f7a6583135246c4.tar.zst
sway-4feedbf7cf5e90574953aea81f7a6583135246c4.zip
Ignore unrelated cursor buttons while doing seat operations
* Click and hold a scrollbar * Drag the cursor onto another surface * While still holding the original button, press and release another cursor button * Things get weird There's two ways to fix this. Either cancel the seat operation and do the other click, or continue the seat operation and ignore the other click. I opted for the latter (ignoring the click) because it's easier to implement, and I suspect a second click during a seat operation is probably unintentional anyway.
Diffstat (limited to 'sway/input/cursor.c')
-rw-r--r--sway/input/cursor.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sway/input/cursor.c b/sway/input/cursor.c
index 3c62acb9..331c6c7e 100644
--- a/sway/input/cursor.c
+++ b/sway/input/cursor.c
@@ -754,11 +754,12 @@ void dispatch_cursor_button(struct sway_cursor *cursor,
754 } 754 }
755 struct sway_seat *seat = cursor->seat; 755 struct sway_seat *seat = cursor->seat;
756 756
757 // Handle ending seat operation 757 // Handle existing seat operation
758 if (cursor->seat->operation != OP_NONE && 758 if (cursor->seat->operation != OP_NONE) {
759 button == cursor->seat->op_button && state == WLR_BUTTON_RELEASED) { 759 if (button == cursor->seat->op_button && state == WLR_BUTTON_RELEASED) {
760 seat_end_mouse_operation(seat); 760 seat_end_mouse_operation(seat);
761 seat_pointer_notify_button(seat, time_msec, button, state); 761 seat_pointer_notify_button(seat, time_msec, button, state);
762 }
762 return; 763 return;
763 } 764 }
764 765