Fix windows not showing up switching between tags

When switching from an empty tag to a tag with clients the screen wasn't
updating. This is easily fixed damaging the screen directly in
arrange()
This commit is contained in:
Stivvo 2021-03-15 01:07:34 +01:00
parent 914bb4c886
commit 64b5c4c9f9

3
dwl.c
View File

@ -505,6 +505,7 @@ arrange(Monitor *m)
else if (m->fullscreenclient) else if (m->fullscreenclient)
maximizeclient(m->fullscreenclient); maximizeclient(m->fullscreenclient);
/* TODO recheck pointer focus here... or in resize()? */ /* TODO recheck pointer focus here... or in resize()? */
wlr_output_damage_add_whole(m->damage);
} }
void void
@ -2028,7 +2029,6 @@ setmon(Client *c, Monitor *m, unsigned int newtags)
if (oldmon) { if (oldmon) {
wlr_surface_send_leave(client_surface(c), oldmon->wlr_output); wlr_surface_send_leave(client_surface(c), oldmon->wlr_output);
arrange(oldmon); arrange(oldmon);
wlr_output_damage_add_whole(oldmon->damage);
} }
if (m) { if (m) {
/* Make sure window actually overlaps with the monitor */ /* Make sure window actually overlaps with the monitor */
@ -2036,7 +2036,6 @@ setmon(Client *c, Monitor *m, unsigned int newtags)
wlr_surface_send_enter(client_surface(c), m->wlr_output); wlr_surface_send_enter(client_surface(c), m->wlr_output);
c->tags = newtags ? newtags : m->tagset[m->seltags]; /* assign tags of target monitor */ c->tags = newtags ? newtags : m->tagset[m->seltags]; /* assign tags of target monitor */
arrange(m); arrange(m);
wlr_output_damage_add_whole(m->damage);
} }
focusclient(focustop(selmon), 1); focusclient(focustop(selmon), 1);
} }