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:
parent
562c53d66c
commit
8176b55b7b
|
@ -344,13 +344,15 @@ void render_con(Con *con, bool render_fullscreen) {
|
||||||
child->rect.height = rect.height;
|
child->rect.height = rect.height;
|
||||||
|
|
||||||
child->deco_rect.width = child->rect.width / children;
|
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.x = x - con->rect.x + i * child->deco_rect.width;
|
||||||
child->deco_rect.y = y - con->rect.y;
|
child->deco_rect.y = y - con->rect.y;
|
||||||
|
|
||||||
if (children > 1 || (child->border_style != BS_1PIXEL && child->border_style != BS_NONE)) {
|
if (children > 1 || (child->border_style != BS_1PIXEL && child->border_style != BS_NONE)) {
|
||||||
child->rect.y += deco_height;
|
child->rect.y += deco_height;
|
||||||
child->rect.height -= 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue