diff options
author | Rouven Czerwinski <rouven@czerwinskis.de> | 2020-04-10 09:40:45 +0200 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2020-04-15 13:40:38 +0200 |
commit | 0efc28e2f58a9a98d219cf2f3a92e18577c9926c (patch) | |
tree | 24051a8301eff052bb7e0ba36a43c464fd488b28 /sway/input | |
parent | c0bce9138b9009724b8b5650ec2ec00b06b948b2 (diff) |
input/seatop_default: release on empty workspace
Instead of handling presses and releases on empty workspaces as setting
focus to the workspace, handle releases by notifying the seat of a
pointer action. This way DnDs are correctly released if the button is
released over an empty workspace. This is achieved by removing the early
return and letting the handle_button() call seat_pointer_notify_button()
at the very end.
Fixes #3932
Diffstat (limited to 'sway/input')
-rw-r--r-- | sway/input/seatop_default.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sway/input/seatop_default.c b/sway/input/seatop_default.c index ffa43658..d20048d5 100644 --- a/sway/input/seatop_default.c +++ b/sway/input/seatop_default.c @@ -280,7 +280,10 @@ static void handle_button(struct sway_seat *seat, uint32_t time_msec, // Handle clicking an empty workspace if (node && node->type == N_WORKSPACE) { - seat_set_focus(seat, node); + if (state == WLR_BUTTON_PRESSED) { + seat_set_focus(seat, node); + } + seat_pointer_notify_button(seat, time_msec, button, state); return; } |