From 8176b55b7bbdf618d89ab3b8bf66ce1e5319d348 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Tue, 4 Sep 2012 22:47:12 +0200 Subject: [PATCH] Bugfix: fix flickering with 1pixel border tabbed layouts (Thanks julien) When you have a tabbed container which has had more than one container but currently has precisely one container, there was a bit of flickering when switching workspaces occasionally. This commit fixes it by properly setting the height of the deco_rect (and thus the X11 window) to not make the old window contents show up for a minimum period of time. fixes #777 --- src/render.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/render.c b/src/render.c index 860219df..afc4b761 100644 --- a/src/render.c +++ b/src/render.c @@ -344,13 +344,15 @@ void render_con(Con *con, bool render_fullscreen) { child->rect.height = rect.height; child->deco_rect.width = child->rect.width / children; - child->deco_rect.height = deco_height; child->deco_rect.x = x - con->rect.x + i * child->deco_rect.width; child->deco_rect.y = y - con->rect.y; if (children > 1 || (child->border_style != BS_1PIXEL && child->border_style != BS_NONE)) { child->rect.y += deco_height; child->rect.height -= deco_height; + child->deco_rect.height = deco_height; + } else { + child->deco_rect.height = (child->border_style == BS_1PIXEL ? 1 : 0); } } -- 2.39.2