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 void
arrange(Monitor *m) 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) if (m->lt[m->sellt]->arrange)
m->lt[m->sellt]->arrange(m); m->lt[m->sellt]->arrange(m);
/* XXX recheck pointer focus here... or in resize()? */ /* 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); wlr_output_layout_add_auto(output_layout, wlr_output);
sgeom = *wlr_output_layout_get_box(output_layout, NULL); 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); len = LENGTH(m->layers);
for (size_t i = 0; i < len; ++i) { for (size_t i = 0; i < len; ++i) {
wl_list_init(&m->layers[i]); wl_list_init(&m->layers[i]);