Add setting "enable_border_for_single_window"
This commit is contained in:
parent
3334607311
commit
3f04c324b8
16
dwm.c
16
dwm.c
|
@ -567,7 +567,8 @@ centeredmaster(Monitor *m)
|
||||||
const int top_left_half_gap = gap_size / 2;
|
const int top_left_half_gap = gap_size / 2;
|
||||||
const int bottom_right_half_gap = gap_size - top_left_half_gap;
|
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;
|
unsigned int oty = 0, ety = 0, my = 0;
|
||||||
Client *c = nexttiled(m->clients);
|
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 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 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)) {
|
for (Client *c = nexttiled(m->clients); c; c = nexttiled(c->next)) {
|
||||||
resize(
|
resize(
|
||||||
c,
|
c,
|
||||||
m->wx + gap_size,
|
m->wx + gap_size,
|
||||||
m->wy + gap_size,
|
m->wy + gap_size,
|
||||||
m->ww - 2 * gap_size,
|
m->ww - 2 * border_width - 2 * gap_size,
|
||||||
m->wh - 2 * gap_size,
|
m->wh - 2 * border_width - 2 * gap_size,
|
||||||
0,
|
border_width,
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -2200,7 +2204,9 @@ tile(Monitor *m)
|
||||||
const int top_left_half_gap = gap_size / 2;
|
const int top_left_half_gap = gap_size / 2;
|
||||||
const int bottom_right_half_gap = gap_size - top_left_half_gap;
|
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;
|
const unsigned int mw = n > m->nmaster ? (m->nmaster ? m->ww * m->mfact : 0) : m->ww;
|
||||||
|
|
||||||
Client *c = nexttiled(m->clients);
|
Client *c = nexttiled(m->clients);
|
||||||
|
|
12
settings.c
12
settings.c
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
static int border_width = 2;
|
static int border_width = 2;
|
||||||
static int default_clients_in_master = 1;
|
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 enable_gap_for_single_window = true;
|
||||||
static bool focus_on_wheel = true;
|
static bool focus_on_wheel = true;
|
||||||
static int gap_size = 10;
|
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;
|
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()
|
bool settings_get_enable_gap_for_single_window()
|
||||||
{
|
{
|
||||||
return enable_gap_for_single_window;
|
return enable_gap_for_single_window;
|
||||||
|
|
|
@ -9,6 +9,9 @@ void settings_set_border_width(int new_border_width);
|
||||||
int settings_get_default_clients_in_master();
|
int settings_get_default_clients_in_master();
|
||||||
void settings_set_default_clients_in_master(int new_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();
|
bool settings_get_enable_gap_for_single_window();
|
||||||
void settings_set_enable_gap_for_single_window(bool new_enable_gap_for_single_window);
|
void settings_set_enable_gap_for_single_window(bool new_enable_gap_for_single_window);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue