Add setting "enable_border_for_single_window"

This commit is contained in:
Alex Kotov 2021-11-15 09:13:29 +05:00
parent 3334607311
commit 3f04c324b8
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
3 changed files with 26 additions and 5 deletions

16
dwm.c
View File

@ -567,7 +567,8 @@ centeredmaster(Monitor *m)
const int top_left_half_gap = gap_size / 2;
const int bottom_right_half_gap = gap_size - top_left_half_gap;
const int border_width = n == 1 ? 0 : settings_get_border_width();
const bool enable_border_for_single_window = settings_get_enable_border_for_single_window();
const int border_width = (n > 1 || enable_border_for_single_window) ? settings_get_border_width() : 0;
unsigned int oty = 0, ety = 0, my = 0;
Client *c = nexttiled(m->clients);
@ -1454,14 +1455,17 @@ monocle(Monitor *m)
const bool enable_gap_for_single_window = settings_get_enable_gap_for_single_window();
const int gap_size = enable_gap_for_single_window ? settings_get_gap_size() : 0;
const bool enable_border_for_single_window = settings_get_enable_border_for_single_window();
const int border_width = enable_border_for_single_window ? settings_get_border_width() : 0;
for (Client *c = nexttiled(m->clients); c; c = nexttiled(c->next)) {
resize(
c,
m->wx + gap_size,
m->wy + gap_size,
m->ww - 2 * gap_size,
m->wh - 2 * gap_size,
0,
m->ww - 2 * border_width - 2 * gap_size,
m->wh - 2 * border_width - 2 * gap_size,
border_width,
0
);
}
@ -2200,7 +2204,9 @@ tile(Monitor *m)
const int top_left_half_gap = gap_size / 2;
const int bottom_right_half_gap = gap_size - top_left_half_gap;
const int border_width = n == 1 ? 0 : settings_get_border_width();
const bool enable_border_for_single_window = settings_get_enable_border_for_single_window();
const int border_width = (n > 1 || enable_border_for_single_window) ? settings_get_border_width() : 0;
const unsigned int mw = n > m->nmaster ? (m->nmaster ? m->ww * m->mfact : 0) : m->ww;
Client *c = nexttiled(m->clients);

View File

@ -2,6 +2,7 @@
static int border_width = 2;
static int default_clients_in_master = 1;
static bool enable_border_for_single_window = true;
static bool enable_gap_for_single_window = true;
static bool focus_on_wheel = true;
static int gap_size = 10;
@ -30,6 +31,17 @@ void settings_set_default_clients_in_master(const int new_default_clients_in_mas
default_clients_in_master = new_default_clients_in_master;
}
bool settings_get_enable_border_for_single_window()
{
return enable_border_for_single_window;
}
void settings_set_enable_border_for_single_window(const bool new_enable_border_for_single_window)
{
enable_border_for_single_window = new_enable_border_for_single_window;
// TODO: notify WM to rearrange clients
}
bool settings_get_enable_gap_for_single_window()
{
return enable_gap_for_single_window;

View File

@ -9,6 +9,9 @@ void settings_set_border_width(int new_border_width);
int settings_get_default_clients_in_master();
void settings_set_default_clients_in_master(int new_default_clients_in_master);
bool settings_get_enable_border_for_single_window();
void settings_set_enable_border_for_single_window(bool new_enable_border_for_single_window);
bool settings_get_enable_gap_for_single_window();
void settings_set_enable_gap_for_single_window(bool new_enable_gap_for_single_window);