diff options
Diffstat (limited to 'sway/commands/focus.c')
-rw-r--r-- | sway/commands/focus.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sway/commands/focus.c b/sway/commands/focus.c index 668a0c7b..d63077e6 100644 --- a/sway/commands/focus.c +++ b/sway/commands/focus.c | |||
@@ -3,6 +3,7 @@ | |||
3 | #include "log.h" | 3 | #include "log.h" |
4 | #include "sway/commands.h" | 4 | #include "sway/commands.h" |
5 | #include "sway/input/input-manager.h" | 5 | #include "sway/input/input-manager.h" |
6 | #include "sway/input/cursor.h" | ||
6 | #include "sway/input/seat.h" | 7 | #include "sway/input/seat.h" |
7 | #include "sway/output.h" | 8 | #include "sway/output.h" |
8 | #include "sway/tree/arrange.h" | 9 | #include "sway/tree/arrange.h" |
@@ -180,6 +181,7 @@ static struct cmd_results *focus_mode(struct sway_workspace *ws, | |||
180 | } | 181 | } |
181 | if (new_focus) { | 182 | if (new_focus) { |
182 | seat_set_focus_container(seat, new_focus); | 183 | seat_set_focus_container(seat, new_focus); |
184 | cursor_send_pointer_motion(seat->cursor, 0, true); | ||
183 | } else { | 185 | } else { |
184 | return cmd_results_new(CMD_FAILURE, "focus", | 186 | return cmd_results_new(CMD_FAILURE, "focus", |
185 | "Failed to find a %s container in workspace", | 187 | "Failed to find a %s container in workspace", |
@@ -212,6 +214,7 @@ static struct cmd_results *focus_output(struct sway_seat *seat, | |||
212 | free(identifier); | 214 | free(identifier); |
213 | if (output) { | 215 | if (output) { |
214 | seat_set_focus(seat, seat_get_focus_inactive(seat, &output->node)); | 216 | seat_set_focus(seat, seat_get_focus_inactive(seat, &output->node)); |
217 | cursor_send_pointer_motion(seat->cursor, 0, true); | ||
215 | } | 218 | } |
216 | 219 | ||
217 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 220 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |
@@ -232,6 +235,7 @@ struct cmd_results *cmd_focus(int argc, char **argv) { | |||
232 | 235 | ||
233 | if (argc == 0 && container) { | 236 | if (argc == 0 && container) { |
234 | seat_set_focus_container(seat, container); | 237 | seat_set_focus_container(seat, container); |
238 | cursor_send_pointer_motion(seat->cursor, 0, true); | ||
235 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 239 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |
236 | } | 240 | } |
237 | 241 | ||
@@ -260,6 +264,7 @@ struct cmd_results *cmd_focus(int argc, char **argv) { | |||
260 | struct sway_node *focus = seat_get_active_child(seat, node); | 264 | struct sway_node *focus = seat_get_active_child(seat, node); |
261 | if (focus) { | 265 | if (focus) { |
262 | seat_set_focus(seat, focus); | 266 | seat_set_focus(seat, focus); |
267 | cursor_send_pointer_motion(seat->cursor, 0, true); | ||
263 | } | 268 | } |
264 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 269 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |
265 | } | 270 | } |
@@ -279,6 +284,7 @@ struct cmd_results *cmd_focus(int argc, char **argv) { | |||
279 | struct sway_node *node = | 284 | struct sway_node *node = |
280 | get_node_in_output_direction(new_output, direction); | 285 | get_node_in_output_direction(new_output, direction); |
281 | seat_set_focus(seat, node); | 286 | seat_set_focus(seat, node); |
287 | cursor_send_pointer_motion(seat->cursor, 0, true); | ||
282 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 288 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |
283 | } | 289 | } |
284 | 290 | ||
@@ -286,6 +292,7 @@ struct cmd_results *cmd_focus(int argc, char **argv) { | |||
286 | node_get_in_direction(container, seat, direction); | 292 | node_get_in_direction(container, seat, direction); |
287 | if (next_focus) { | 293 | if (next_focus) { |
288 | seat_set_focus(seat, next_focus); | 294 | seat_set_focus(seat, next_focus); |
295 | cursor_send_pointer_motion(seat->cursor, 0, true); | ||
289 | } | 296 | } |
290 | 297 | ||
291 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 298 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |