sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 1f0aeae33591fb46b3f8a91ca91975daf2a8bbf9
parent d69cf4c23c437b9ff724869f380e5c6cd03b091e
Author: Rouven Czerwinski <rouven@czerwinskis.de>
Date:   Mon, 15 Oct 2018 16:21:38 +0200

view: rewarp cursor during view_unmap

If the cursor is warped during the destruction of the workspace, we end up in
the wrong position. Warp the cursor after arrange_workspace() so we end up in
the correct position.

Diffstat:
Msway/tree/view.c | 11++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/sway/tree/view.c b/sway/tree/view.c @@ -637,7 +637,16 @@ void view_unmap(struct sway_view *view) { struct sway_seat *seat; wl_list_for_each(seat, &input_manager->seats, link) { - cursor_send_pointer_motion(seat->cursor, 0, true); + if (config->mouse_warping == WARP_CONTAINER) { + struct sway_node *node = seat_get_focus(seat); + if (node && node->type == N_CONTAINER) { + cursor_warp_to_container(seat->cursor, node->sway_container); + } else if (node && node->type == N_WORKSPACE) { + cursor_warp_to_workspace(seat->cursor, node->sway_workspace); + } + } else { + cursor_send_pointer_motion(seat->cursor, 0, true); + } } transaction_commit_dirty();