|
|
@ -3,6 +3,7 @@
|
|
|
|
#include "log.h"
|
|
|
|
#include "log.h"
|
|
|
|
#include "sway/commands.h"
|
|
|
|
#include "sway/commands.h"
|
|
|
|
#include "sway/input/input-manager.h"
|
|
|
|
#include "sway/input/input-manager.h"
|
|
|
|
|
|
|
|
#include "sway/input/cursor.h"
|
|
|
|
#include "sway/input/seat.h"
|
|
|
|
#include "sway/input/seat.h"
|
|
|
|
#include "sway/output.h"
|
|
|
|
#include "sway/output.h"
|
|
|
|
#include "sway/tree/arrange.h"
|
|
|
|
#include "sway/tree/arrange.h"
|
|
|
@ -180,6 +181,7 @@ static struct cmd_results *focus_mode(struct sway_workspace *ws,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (new_focus) {
|
|
|
|
if (new_focus) {
|
|
|
|
seat_set_focus_container(seat, new_focus);
|
|
|
|
seat_set_focus_container(seat, new_focus);
|
|
|
|
|
|
|
|
cursor_send_pointer_motion(seat->cursor, 0, true);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
return cmd_results_new(CMD_FAILURE, "focus",
|
|
|
|
return cmd_results_new(CMD_FAILURE, "focus",
|
|
|
|
"Failed to find a %s container in workspace",
|
|
|
|
"Failed to find a %s container in workspace",
|
|
|
@ -212,6 +214,7 @@ static struct cmd_results *focus_output(struct sway_seat *seat,
|
|
|
|
free(identifier);
|
|
|
|
free(identifier);
|
|
|
|
if (output) {
|
|
|
|
if (output) {
|
|
|
|
seat_set_focus(seat, seat_get_focus_inactive(seat, &output->node));
|
|
|
|
seat_set_focus(seat, seat_get_focus_inactive(seat, &output->node));
|
|
|
|
|
|
|
|
cursor_send_pointer_motion(seat->cursor, 0, true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
|
|
|
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
|
|
@ -232,6 +235,7 @@ struct cmd_results *cmd_focus(int argc, char **argv) {
|
|
|
|
|
|
|
|
|
|
|
|
if (argc == 0 && container) {
|
|
|
|
if (argc == 0 && container) {
|
|
|
|
seat_set_focus_container(seat, container);
|
|
|
|
seat_set_focus_container(seat, container);
|
|
|
|
|
|
|
|
cursor_send_pointer_motion(seat->cursor, 0, true);
|
|
|
|
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
|
|
|
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -260,6 +264,7 @@ struct cmd_results *cmd_focus(int argc, char **argv) {
|
|
|
|
struct sway_node *focus = seat_get_active_child(seat, node);
|
|
|
|
struct sway_node *focus = seat_get_active_child(seat, node);
|
|
|
|
if (focus) {
|
|
|
|
if (focus) {
|
|
|
|
seat_set_focus(seat, focus);
|
|
|
|
seat_set_focus(seat, focus);
|
|
|
|
|
|
|
|
cursor_send_pointer_motion(seat->cursor, 0, true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
|
|
|
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -279,6 +284,7 @@ struct cmd_results *cmd_focus(int argc, char **argv) {
|
|
|
|
struct sway_node *node =
|
|
|
|
struct sway_node *node =
|
|
|
|
get_node_in_output_direction(new_output, direction);
|
|
|
|
get_node_in_output_direction(new_output, direction);
|
|
|
|
seat_set_focus(seat, node);
|
|
|
|
seat_set_focus(seat, node);
|
|
|
|
|
|
|
|
cursor_send_pointer_motion(seat->cursor, 0, true);
|
|
|
|
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
|
|
|
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -286,6 +292,7 @@ struct cmd_results *cmd_focus(int argc, char **argv) {
|
|
|
|
node_get_in_direction(container, seat, direction);
|
|
|
|
node_get_in_direction(container, seat, direction);
|
|
|
|
if (next_focus) {
|
|
|
|
if (next_focus) {
|
|
|
|
seat_set_focus(seat, next_focus);
|
|
|
|
seat_set_focus(seat, next_focus);
|
|
|
|
|
|
|
|
cursor_send_pointer_motion(seat->cursor, 0, true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
|
|
|
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
|
|
|