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
This commit is contained in:
Michael Stapelberg 2012-09-04 22:47:12 +02:00
parent 562c53d66c
commit 8176b55b7b
1 changed files with 3 additions and 1 deletions

View File

@ -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);
}
}