]> git.sur5r.net Git - i3/i3/commitdiff
Bugfix: fix flickering with 1pixel border tabbed layouts (Thanks julien)
authorMichael Stapelberg <michael@stapelberg.de>
Tue, 4 Sep 2012 20:47:12 +0000 (22:47 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Tue, 4 Sep 2012 20:47:12 +0000 (22:47 +0200)
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

index 860219df5f92fbfb76f5901308566b74280d3cfc..afc4b761fb7355f40ef4e321e210505b5f124dd8 100644 (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);
             }
         }