diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-10-19 00:04:21 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-10-19 22:47:54 +1000 |
commit | 9ea71f292b2270f37cf7ca641b7bae628ef41ed7 (patch) | |
tree | fbeb938d3bb175013a0224e95ab50bdf0a678ae8 /sway/commands | |
parent | Merge pull request #2882 from RyanDwyer/fix-mouse-warp-logic (diff) | |
download | sway-9ea71f292b2270f37cf7ca641b7bae628ef41ed7.tar.gz sway-9ea71f292b2270f37cf7ca641b7bae628ef41ed7.tar.zst sway-9ea71f292b2270f37cf7ca641b7bae628ef41ed7.zip |
Introduce cursor_rebase
This function "rebases" the cursor on top of whatever is underneath it,
without triggering any focus changes.
Diffstat (limited to 'sway/commands')
-rw-r--r-- | sway/commands/border.c | 2 | ||||
-rw-r--r-- | sway/commands/focus.c | 2 | ||||
-rw-r--r-- | sway/commands/seat/cursor.c | 4 |
3 files changed, 4 insertions, 4 deletions
diff --git a/sway/commands/border.c b/sway/commands/border.c index 2eed27bd..a50f7a1c 100644 --- a/sway/commands/border.c +++ b/sway/commands/border.c | |||
@@ -96,7 +96,7 @@ struct cmd_results *cmd_border(int argc, char **argv) { | |||
96 | 96 | ||
97 | struct sway_seat *seat = input_manager_current_seat(input_manager); | 97 | struct sway_seat *seat = input_manager_current_seat(input_manager); |
98 | if (seat->cursor) { | 98 | if (seat->cursor) { |
99 | cursor_send_pointer_motion(seat->cursor, 0, false); | 99 | cursor_rebase(seat->cursor); |
100 | } | 100 | } |
101 | 101 | ||
102 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 102 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |
diff --git a/sway/commands/focus.c b/sway/commands/focus.c index b6f29fec..7dfa8814 100644 --- a/sway/commands/focus.c +++ b/sway/commands/focus.c | |||
@@ -236,7 +236,7 @@ struct cmd_results *cmd_focus(int argc, char **argv) { | |||
236 | if (argc == 0 && container) { | 236 | if (argc == 0 && container) { |
237 | seat_set_focus_container(seat, container); | 237 | seat_set_focus_container(seat, container); |
238 | seat_consider_warp_to_focus(seat); | 238 | seat_consider_warp_to_focus(seat); |
239 | cursor_send_pointer_motion(seat->cursor, 0, true); | 239 | cursor_rebase(seat->cursor); |
240 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 240 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |
241 | } | 241 | } |
242 | 242 | ||
diff --git a/sway/commands/seat/cursor.c b/sway/commands/seat/cursor.c index 595e9bc6..1d41a94e 100644 --- a/sway/commands/seat/cursor.c +++ b/sway/commands/seat/cursor.c | |||
@@ -36,7 +36,7 @@ struct cmd_results *seat_cmd_cursor(int argc, char **argv) { | |||
36 | int delta_x = strtol(argv[1], NULL, 10); | 36 | int delta_x = strtol(argv[1], NULL, 10); |
37 | int delta_y = strtol(argv[2], NULL, 10); | 37 | int delta_y = strtol(argv[2], NULL, 10); |
38 | wlr_cursor_move(cursor->cursor, NULL, delta_x, delta_y); | 38 | wlr_cursor_move(cursor->cursor, NULL, delta_x, delta_y); |
39 | cursor_send_pointer_motion(cursor, 0, true); | 39 | cursor_rebase(cursor); |
40 | } else if (strcasecmp(argv[0], "set") == 0) { | 40 | } else if (strcasecmp(argv[0], "set") == 0) { |
41 | if (argc < 3) { | 41 | if (argc < 3) { |
42 | return cmd_results_new(CMD_INVALID, "cursor", expected_syntax); | 42 | return cmd_results_new(CMD_INVALID, "cursor", expected_syntax); |
@@ -45,7 +45,7 @@ struct cmd_results *seat_cmd_cursor(int argc, char **argv) { | |||
45 | float x = strtof(argv[1], NULL) / root->width; | 45 | float x = strtof(argv[1], NULL) / root->width; |
46 | float y = strtof(argv[2], NULL) / root->height; | 46 | float y = strtof(argv[2], NULL) / root->height; |
47 | wlr_cursor_warp_absolute(cursor->cursor, NULL, x, y); | 47 | wlr_cursor_warp_absolute(cursor->cursor, NULL, x, y); |
48 | cursor_send_pointer_motion(cursor, 0, true); | 48 | cursor_rebase(cursor); |
49 | } else { | 49 | } else { |
50 | if (argc < 2) { | 50 | if (argc < 2) { |
51 | return cmd_results_new(CMD_INVALID, "cursor", expected_syntax); | 51 | return cmd_results_new(CMD_INVALID, "cursor", expected_syntax); |