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
This commit is contained in:
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

5
dwl.c
View file

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