From: Fernando Tarlá Cardoso Lemos Date: Sun, 14 Nov 2010 23:38:53 +0000 (-0200) Subject: Render the tabbed mode correctly. X-Git-Tag: tree-pr1~90 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=8048cb2e120e33271bdd8823797ad240d009370c;p=i3%2Fi3 Render the tabbed mode correctly. --- diff --git a/src/render.c b/src/render.c index fcb2a64e..e3069e72 100644 --- a/src/render.c +++ b/src/render.c @@ -148,7 +148,8 @@ void render_con(Con *con) { } } - if (con->layout == L_STACKED) { + /* stacked layout */ + else if (con->layout == L_STACKED) { printf("stacked con\n"); child->rect.x = x; child->rect.y = y; @@ -164,6 +165,23 @@ void render_con(Con *con) { child->deco_rect.height = deco_height; } + /* tabbed layout */ + else if (con->layout == L_TABBED) { + printf("tabbed con\n"); + child->rect.x = x; + child->rect.y = y; + child->rect.width = rect.width; + 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; + + child->rect.y += deco_height; + child->rect.height -= deco_height; + } + printf("child at (%d, %d) with (%d x %d)\n", child->rect.x, child->rect.y, child->rect.width, child->rect.height); printf("x now %d, y now %d\n", x, y); @@ -172,8 +190,8 @@ void render_con(Con *con) { i++; } - /* in a stacking container, we ensure the focused client is raised */ - if (con->layout == L_STACKED) { + /* in a stacking or tabbed container, we ensure the focused client is raised */ + if (con->layout == L_STACKED || con->layout == L_TABBED) { Con *foc = TAILQ_FIRST(&(con->focus_head)); if (foc != TAILQ_END(&(con->focus_head))) { LOG("con %p is stacking, raising %p\n", con, foc);