1
1
mirror of https://github.com/swaywm/sway synced 2024-11-18 04:33:59 +01:00

Support i3's legacy force_focus_wrapping command

This commit is contained in:
Brian Ashworth 2018-05-28 11:09:46 -04:00
parent 1071785f56
commit c81d0ef1e8
5 changed files with 31 additions and 0 deletions

@ -109,6 +109,7 @@ sway_cmd cmd_focus_follows_mouse;
sway_cmd cmd_focus_wrapping;
sway_cmd cmd_font;
sway_cmd cmd_for_window;
sway_cmd cmd_force_focus_wrapping;
sway_cmd cmd_fullscreen;
sway_cmd cmd_gaps;
sway_cmd cmd_hide_edge_borders;

@ -109,6 +109,7 @@ static struct cmd_handler handlers[] = {
{ "focus_wrapping", cmd_focus_wrapping },
{ "font", cmd_font },
{ "for_window", cmd_for_window },
{ "force_focus_wrapping", cmd_force_focus_wrapping },
{ "fullscreen", cmd_fullscreen },
{ "hide_edge_borders", cmd_hide_edge_borders },
{ "include", cmd_include },

@ -0,0 +1,22 @@
#include <strings.h>
#include "sway/commands.h"
#include "sway/config.h"
struct cmd_results *cmd_force_focus_wrapping(int argc, char **argv) {
struct cmd_results *error =
checkarg(argc, "force_focus_wrapping", EXPECTED_EQUAL_TO, 1);
if (error) {
return error;
}
if (strcasecmp(argv[0], "no") == 0) {
config->focus_wrapping = WRAP_YES;
} else if (strcasecmp(argv[0], "yes") == 0) {
config->focus_wrapping = WRAP_FORCE;
} else {
return cmd_results_new(CMD_INVALID, "force_focus_wrapping",
"Expected 'force_focus_wrapping yes|no'");
}
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
}

@ -41,6 +41,7 @@ sway_sources = files(
'commands/focus_wrapping.c',
'commands/font.c',
'commands/for_window.c',
'commands/force_focus_wrapping.c',
'commands/fullscreen.c',
'commands/hide_edge_borders.c',
'commands/kill.c',

@ -344,6 +344,12 @@ The default colors are:
Whenever a window that matches _criteria_ appears, run list of commands.
See *CRITERIA* for more details.
*force\_focus\_wrapping* yes|no
This option is a wrapper to support i3's legacy syntax. _no_ is equivalent
to _focus\_wrapping yes_ and _yes_ is equivalent to
_focus\_wrapping force_. This is only available for convenience. Please
use _focus\_wrapping_ instead when possible.
*gaps* edge\_gaps on|off|toggle
When _on_, gaps will be added between windows and workspace edges if the
inner gap is nonzero. When _off_, gaps will only be added between views.