mirror of
https://github.com/swaywm/sway.git
synced 2024-11-29 19:31:29 +00:00
add force_focus_wrapping option
This commit is contained in:
parent
7f558ce894
commit
d3f5ac8cbb
|
@ -106,6 +106,7 @@ sway_cmd cmd_focus;
|
||||||
sway_cmd cmd_focus_follows_mouse;
|
sway_cmd cmd_focus_follows_mouse;
|
||||||
sway_cmd cmd_font;
|
sway_cmd cmd_font;
|
||||||
sway_cmd cmd_for_window;
|
sway_cmd cmd_for_window;
|
||||||
|
sway_cmd cmd_force_focus_wrapping;
|
||||||
sway_cmd cmd_fullscreen;
|
sway_cmd cmd_fullscreen;
|
||||||
sway_cmd cmd_gaps;
|
sway_cmd cmd_gaps;
|
||||||
sway_cmd cmd_hide_edge_borders;
|
sway_cmd cmd_hide_edge_borders;
|
||||||
|
|
|
@ -211,6 +211,7 @@ struct sway_config {
|
||||||
// Flags
|
// Flags
|
||||||
bool focus_follows_mouse;
|
bool focus_follows_mouse;
|
||||||
bool mouse_warping;
|
bool mouse_warping;
|
||||||
|
bool force_focus_wrapping;
|
||||||
bool active;
|
bool active;
|
||||||
bool failed;
|
bool failed;
|
||||||
bool reloading;
|
bool reloading;
|
||||||
|
|
|
@ -171,6 +171,7 @@ static struct cmd_handler handlers[] = {
|
||||||
{ "focus", cmd_focus },
|
{ "focus", cmd_focus },
|
||||||
{ "focus_follows_mouse", cmd_focus_follows_mouse },
|
{ "focus_follows_mouse", cmd_focus_follows_mouse },
|
||||||
{ "font", cmd_font },
|
{ "font", cmd_font },
|
||||||
|
{ "force_focus_wrapping", cmd_force_focus_wrapping },
|
||||||
{ "for_window", cmd_for_window },
|
{ "for_window", cmd_for_window },
|
||||||
{ "fullscreen", cmd_fullscreen },
|
{ "fullscreen", cmd_fullscreen },
|
||||||
{ "gaps", cmd_gaps },
|
{ "gaps", cmd_gaps },
|
||||||
|
|
12
sway/commands/force_focus_wrapping.c
Normal file
12
sway/commands/force_focus_wrapping.c
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#include <string.h>
|
||||||
|
#include "sway/commands.h"
|
||||||
|
|
||||||
|
struct cmd_results *cmd_force_focus_wrapping(int argc, char **argv) {
|
||||||
|
struct cmd_results *error = NULL;
|
||||||
|
if ((error = checkarg(argc, "force_focus_wrapping", EXPECTED_EQUAL_TO, 1))) {
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
|
config->force_focus_wrapping = !strcasecmp(argv[0], "yes");
|
||||||
|
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
|
||||||
|
}
|
|
@ -1123,6 +1123,9 @@ swayc_t *get_swayc_in_direction_under(swayc_t *container, enum movement_directio
|
||||||
} else {
|
} else {
|
||||||
wrap_candidate = parent->children->items[0];
|
wrap_candidate = parent->children->items[0];
|
||||||
}
|
}
|
||||||
|
if (config->force_focus_wrapping) {
|
||||||
|
return wrap_candidate;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return parent->children->items[desired];
|
return parent->children->items[desired];
|
||||||
|
|
Loading…
Reference in a new issue