~ruther/dwl

b04c73be3de62d2739b5bb85e40f0c9af1122903 — Leonardo Hernández Hernández 2 years ago 8cdb997
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
1 files changed, 9 insertions(+), 4 deletions(-)

M dwl.c
M dwl.c => dwl.c +9 -4
@@ 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();

Do not follow this link