Remove button from state on release during op

This fixes a bug in `dispatch_cursor_button` where if there was an
operation occurring, the button would not be removed from the state on
release. This resulted in the button appearing to be permanently pressed
and caused mouse bindings to not match correctly.
This commit is contained in:
Brian Ashworth 2018-12-29 00:30:27 -05:00 committed by emersion
parent c54258f323
commit 0dbf2673a1

View file

@ -825,6 +825,11 @@ void dispatch_cursor_button(struct sway_cursor *cursor,
seat_end_mouse_operation(seat); seat_end_mouse_operation(seat);
seat_pointer_notify_button(seat, time_msec, button, state); seat_pointer_notify_button(seat, time_msec, button, state);
} }
if (state == WLR_BUTTON_PRESSED) {
state_add_button(cursor, button);
} else {
state_erase_button(cursor, button);
}
return; return;
} }