From 60a1d79de71660949f7a6fc83e242d9d95c75187 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 25 Oct 2018 23:30:09 +1000 Subject: 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. --- sway/commands/focus.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'sway/commands/focus.c') diff --git a/sway/commands/focus.c b/sway/commands/focus.c index 81af8e0f..b4965cf8 100644 --- a/sway/commands/focus.c +++ b/sway/commands/focus.c @@ -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); -- cgit v1.2.3