mirror of
https://github.com/swaywm/sway.git
synced 2025-11-08 13:29:50 -05:00
Rebase the cursor after applying transactions
This approaches cursor rebasing from a different angle. Rather than littering the codebase with cursor_rebase calls and using transaction callbacks, this just runs cursor_rebase after applying every transaction - but only if there's outputs connected, because otherwise it causes a crash during shutdown. There is one known case where we still need to call cursor_rebase directly, and that's when running `seat seat0 cursor move ...`. This command doesn't set anything as dirty so no transaction occurs.
This commit is contained in:
parent
ea2497d35c
commit
60a1d79de7
10 changed files with 18 additions and 68 deletions
|
|
@ -94,10 +94,5 @@ struct cmd_results *cmd_border(int argc, char **argv) {
|
|||
|
||||
arrange_container(view->container);
|
||||
|
||||
struct sway_seat *seat = input_manager_current_seat();
|
||||
if (seat->cursor) {
|
||||
cursor_rebase(seat->cursor);
|
||||
}
|
||||
|
||||
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -236,7 +236,6 @@ struct cmd_results *cmd_focus(int argc, char **argv) {
|
|||
if (argc == 0 && container) {
|
||||
seat_set_focus_container(seat, container);
|
||||
seat_consider_warp_to_focus(seat);
|
||||
cursor_rebase(seat->cursor);
|
||||
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
||||
}
|
||||
|
||||
|
|
@ -294,7 +293,6 @@ struct cmd_results *cmd_focus(int argc, char **argv) {
|
|||
if (next_focus) {
|
||||
seat_set_focus(seat, next_focus);
|
||||
seat_consider_warp_to_focus(seat);
|
||||
cursor_rebase(seat->cursor);
|
||||
}
|
||||
|
||||
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue