]> git.sur5r.net Git - i3/i3/blobdiff - src/x.c
Bugfix: force rendering when the parent’s orientation changed
[i3/i3] / src / x.c
diff --git a/src/x.c b/src/x.c
index 24fd0eac81d425b2f7db70d6954374338b5141cb..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,9 +445,9 @@ 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, 0, r->width, r->height + br.height } });
+                        { r->width + br.width + br.x, br.y, r->width, r->height + br.height } });
             else
                 xcb_poly_fill_rectangle(conn, con->pixmap, con->pm_gc, 1, (xcb_rectangle_t[]){
                         { br.x, r->height + br.height + br.y, r->width - (2 * br.x), r->height } });
@@ -792,7 +793,7 @@ static void x_push_node_unmaps(Con *con) {
         }
 
         cookie = xcb_unmap_window(conn, con->frame);
-        DLOG("unmapping container (serial %d)\n", cookie.sequence);
+        DLOG("unmapping container %p / %s (serial %d)\n", con, con->name, cookie.sequence);
         /* we need to increase ignore_unmap for this container (if it
          * contains a window) and for every window "under" this one which
          * contains a window */