summaryrefslogtreecommitdiff
path: root/src/actions.c
diff options
context:
space:
mode:
authorVasil Zlatanov <v@skozl.com>2017-08-22 20:31:01 +0100
committerJérémie Courrèges-Anglas <jca@wxcvbn.org>2017-08-28 19:29:32 +0200
commit71819fe746d57774aaa05d989ab932dc39076d90 (patch)
treea903882b293240a3d6584514dd6cabfca5ad1ef4 /src/actions.c
parent53618de3a1d83860b86f4d4a1a2a400d386d7645 (diff)
downloadratpoison-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.c25
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;