summaryrefslogtreecommitdiffstats
path: root/sway/commands
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-10-19 00:04:21 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-10-19 22:47:54 +1000
commit9ea71f292b2270f37cf7ca641b7bae628ef41ed7 (patch)
treefbeb938d3bb175013a0224e95ab50bdf0a678ae8 /sway/commands
parentMerge pull request #2882 from RyanDwyer/fix-mouse-warp-logic (diff)
downloadsway-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.c2
-rw-r--r--sway/commands/focus.c2
-rw-r--r--sway/commands/seat/cursor.c4
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);