set a monitor geometry only when creating it

Lets layers with an exclusive area shrink the usable area
main
Guido Cella 2020-08-27 05:22:27 +02:00
parent b8a6d3e86a
commit c9f92bdd0e
1 changed files with 4 additions and 3 deletions

7
dwl.c
View File

@ -461,9 +461,6 @@ applyrules(Client *c)
void
arrange(Monitor *m)
{
/* Get effective monitor geometry to use for window area */
m->m = *wlr_output_layout_get_box(output_layout, m->wlr_output);
m->w = m->m;
if (m->lt[m->sellt]->arrange)
m->lt[m->sellt]->arrange(m);
/* XXX recheck pointer focus here... or in resize()? */
@ -833,6 +830,10 @@ createmon(struct wl_listener *listener, void *data)
wlr_output_layout_add_auto(output_layout, wlr_output);
sgeom = *wlr_output_layout_get_box(output_layout, NULL);
/* Get effective monitor geometry to use for window area */
m->m = *wlr_output_layout_get_box(output_layout, m->wlr_output);
m->w = m->m;
len = LENGTH(m->layers);
for (size_t i = 0; i < len; ++i) {
wl_list_init(&m->layers[i]);