Fix right-click/popups and add state checks

This commit is contained in:
Ryan Dwyer 2018-08-10 23:43:31 +10:00
parent 2dceae6224
commit 1893515d3a

View file

@ -657,7 +657,8 @@ void dispatch_cursor_button(struct sway_cursor *cursor,
} }
// Handle tiling resize via border // Handle tiling resize via border
if (resize_edge && button == BTN_LEFT && !is_floating) { if (resize_edge && button == BTN_LEFT && state == WLR_BUTTON_PRESSED &&
!is_floating) {
seat_set_focus(seat, cont); seat_set_focus(seat, cont);
seat_begin_resize_tiling(seat, cont, button, edge); seat_begin_resize_tiling(seat, cont, button, edge);
return; return;
@ -666,7 +667,7 @@ void dispatch_cursor_button(struct sway_cursor *cursor,
// Handle tiling resize via mod // Handle tiling resize via mod
bool mod_pressed = keyboard && bool mod_pressed = keyboard &&
(wlr_keyboard_get_modifiers(keyboard) & config->floating_mod); (wlr_keyboard_get_modifiers(keyboard) & config->floating_mod);
if (!is_floating) { if (!is_floating && mod_pressed && state == WLR_BUTTON_PRESSED) {
uint32_t btn_resize = config->floating_mod_inverse ? uint32_t btn_resize = config->floating_mod_inverse ?
BTN_LEFT : BTN_RIGHT; BTN_LEFT : BTN_RIGHT;
if (button == btn_resize) { if (button == btn_resize) {
@ -682,7 +683,8 @@ void dispatch_cursor_button(struct sway_cursor *cursor,
} }
// Handle beginning floating move // Handle beginning floating move
if (is_floating_or_child && !is_fullscreen_or_child) { if (is_floating_or_child && !is_fullscreen_or_child &&
state == WLR_BUTTON_PRESSED) {
uint32_t btn_move = config->floating_mod_inverse ? BTN_RIGHT : BTN_LEFT; uint32_t btn_move = config->floating_mod_inverse ? BTN_RIGHT : BTN_LEFT;
if (button == btn_move && state == WLR_BUTTON_PRESSED && if (button == btn_move && state == WLR_BUTTON_PRESSED &&
(mod_pressed || on_titlebar)) { (mod_pressed || on_titlebar)) {