make sure we do not create a double fullscreen_bg

and also make sure we do not destroy it if it does not exist
Fixes: #274
main
Leonardo Hernández Hernández 2022-07-23 13:25:47 -05:00
parent 8cdb997126
commit b04c73be3d
No known key found for this signature in database
GPG Key ID: E538897EE11B9624
1 changed files with 9 additions and 4 deletions

13
dwl.c
View File

@ -1879,14 +1879,19 @@ setfullscreen(Client *c, int fullscreen)
*
* For brevity we set a black background for all clients
*/
c->fullscreen_bg = wlr_scene_rect_create(c->scene,
c->geom.width, c->geom.height, fullscreen_bg);
wlr_scene_node_lower_to_bottom(&c->fullscreen_bg->node);
if (!c->fullscreen_bg) {
c->fullscreen_bg = wlr_scene_rect_create(c->scene,
c->geom.width, c->geom.height, fullscreen_bg);
wlr_scene_node_lower_to_bottom(&c->fullscreen_bg->node);
}
} else {
/* restore previous size instead of arrange for floating windows since
* client positions are set by the user and cannot be recalculated */
resize(c, c->prev, 0);
wlr_scene_node_destroy(&c->fullscreen_bg->node);
if (c->fullscreen_bg) {
wlr_scene_node_destroy(&c->fullscreen_bg->node);
c->fullscreen_bg = NULL;
}
}
arrange(c->mon);
printstatus();