From e7a4580c5f5f895df2990dae0f26a8662d58d80f Mon Sep 17 00:00:00 2001
From: Michael Stapelberg <michael@stapelberg.de>
Date: Mon, 29 Oct 2012 16:41:16 +0100
Subject: [PATCH] =?UTF-8?q?Bugfix:=20force=20rendering=20when=20the=20pare?=
 =?UTF-8?q?nt=E2=80=99s=20orientation=20changed?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Otherwise, the split indicator might not be refreshed even though it
should be.

fixes #858
---
 include/data.h | 1 +
 src/x.c        | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/data.h b/include/data.h
index 02f781c9..fa3e031d 100644
--- a/include/data.h
+++ b/include/data.h
@@ -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 a3f42b6a..ba157e2b 100644
--- 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