aboutsummaryrefslogtreecommitdiffstats
path: root/sway/commands/focus.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/commands/focus.c')
-rw-r--r--sway/commands/focus.c7
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);