From: Michael Stapelberg Date: Tue, 4 Sep 2012 20:47:12 +0000 (+0200) Subject: Bugfix: fix flickering with 1pixel border tabbed layouts (Thanks julien) X-Git-Tag: 4.3~43^2^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=8176b55b7bbdf618d89ab3b8bf66ce1e5319d348;p=i3%2Fi3 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 --- 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); } }