]> git.sur5r.net Git - i3/i3/commitdiff
Bugfix: force rendering when the parent’s orientation changed
authorMichael Stapelberg <michael@stapelberg.de>
Mon, 29 Oct 2012 15:41:16 +0000 (16:41 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Mon, 29 Oct 2012 15:41:16 +0000 (16:41 +0100)
Otherwise, the split indicator might not be refreshed even though it
should be.

fixes #858

include/data.h
src/x.c

index 02f781c9356e0e06fb3ec8eb5bd56e2c53f5551e..fa3e031dbc90fa9ac95c6e51c6efe72a76f58d0f 100644 (file)
@@ -135,6 +135,7 @@ struct deco_render_params {
     Rect con_deco_rect;
     uint32_t background;
     bool con_is_leaf;
+    orientation_t parent_orientation;
 };
 
 /**
diff --git a/src/x.c b/src/x.c
index a3f42b6a9daa80dacbab7015d61d0f052b024613..ba157e2b56a494c367633bd73a023d775a3744f5 100644 (file)
--- a/src/x.c
+++ b/src/x.c
@@ -350,6 +350,7 @@ void x_draw_decoration(Con *con) {
     p->con_deco_rect = con->deco_rect;
     p->background = config.client.background;
     p->con_is_leaf = con_is_leaf(con);
+    p->parent_orientation = con_orientation(parent);
 
     if (con->deco_render_params != NULL &&
         (con->window == NULL || !con->window->name_x_changed) &&
@@ -444,7 +445,7 @@ void x_draw_decoration(Con *con) {
             TAILQ_PREV(con, nodes_head, nodes) == NULL &&
             con->parent->type != CT_FLOATING_CON) {
             xcb_change_gc(conn, con->pm_gc, XCB_GC_FOREGROUND, (uint32_t[]){ p->color->indicator });
-            if (con_orientation(con->parent) == HORIZ)
+            if (p->parent_orientation == HORIZ)
                 xcb_poly_fill_rectangle(conn, con->pixmap, con->pm_gc, 1, (xcb_rectangle_t[]){
                         { r->width + br.width + br.x, br.y, r->width, r->height + br.height } });
             else