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
This commit is contained in:
Rouven Czerwinski 2020-04-10 09:40:45 +02:00 committed by Simon Ser
parent c0bce9138b
commit 0efc28e2f5

View file

@ -280,7 +280,10 @@ static void handle_button(struct sway_seat *seat, uint32_t time_msec,
// Handle clicking an empty workspace // Handle clicking an empty workspace
if (node && node->type == N_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; return;
} }