diff options
author | Vasil Zlatanov <v@skozl.com> | 2017-08-22 20:31:01 +0100 |
---|---|---|
committer | Jérémie Courrèges-Anglas <jca@wxcvbn.org> | 2017-08-28 19:29:32 +0200 |
commit | 71819fe746d57774aaa05d989ab932dc39076d90 (patch) | |
tree | a903882b293240a3d6584514dd6cabfca5ad1ef4 /src/actions.c | |
parent | 53618de3a1d83860b86f4d4a1a2a400d386d7645 (diff) | |
download | ratpoison-71819fe746d57774aaa05d989ab932dc39076d90.zip |
add onlyborder variable
When onlyborder is set to 0 (default 1), borders are not displayed if
there is only a single frame on a given screen.
This is useful if you use (thick) coloured borders to show which is the
currently focused window when using splits, but also don't want to have
borders taking up space unnecessarily when running a fullscreen window.
Signed-off-by: Vasil Zlatanov <v@skozl.com>
Diffstat (limited to 'src/actions.c')
-rw-r--r-- | src/actions.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/actions.c b/src/actions.c index 21237ee..60e90e9 100644 --- a/src/actions.c +++ b/src/actions.c @@ -156,6 +156,7 @@ static cmdret * set_bargravity (struct cmdarg **args); static cmdret * set_font (struct cmdarg **args); static cmdret * set_padding (struct cmdarg **args); static cmdret * set_border (struct cmdarg **args); +static cmdret * set_onlyborder(struct cmdarg **args); static cmdret * set_barborder (struct cmdarg **args); static cmdret * set_barinpadding (struct cmdarg **args); static cmdret * set_inputwidth (struct cmdarg **args); @@ -345,6 +346,7 @@ init_set_vars (void) add_set_var ("barpadding", set_barpadding, 2, "", arg_NUMBER, "", arg_NUMBER); add_set_var ("bgcolor", set_bgcolor, 1, "", arg_STRING); add_set_var ("border", set_border, 1, "", arg_NUMBER); + add_set_var ("onlyborder", set_onlyborder, 1, "", arg_NUMBER); add_set_var ("bwcolor", set_bwcolor, 1, "", arg_STRING); add_set_var ("fgcolor", set_fgcolor, 1, "", arg_STRING); add_set_var ("font", set_font, 1, "", arg_STRING); @@ -4170,6 +4172,29 @@ set_border (struct cmdarg **args) } static cmdret * +set_onlyborder (struct cmdarg **args) +{ + rp_window *win; + + if (args[0] == NULL) + return cmdret_new (RET_SUCCESS, "%d", defaults.only_border); + + if (ARG(0, number) != 0 && ARG(0, number) != 1) + return cmdret_new (RET_FAILURE, "set onlyborder: invalid argument"); + + defaults.only_border = ARG(0, number); + + /* Update all the visible windows. */ + list_for_each_entry (win,&rp_mapped_window,node) + { + if (win_get_frame (win)) + maximize (win); + } + + return cmdret_new (RET_SUCCESS, NULL); +} + +static cmdret * set_barborder (struct cmdarg **args) { rp_screen *cur; |