Bugfix: force rendering when the parent’s orientation changed

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

fixes #858
This commit is contained in:
Michael Stapelberg 2012-10-29 16:41:16 +01:00
parent 718d922990
commit e7a4580c5f
2 changed files with 3 additions and 1 deletions

View File

@ -135,6 +135,7 @@ struct deco_render_params {
Rect con_deco_rect; Rect con_deco_rect;
uint32_t background; uint32_t background;
bool con_is_leaf; bool con_is_leaf;
orientation_t parent_orientation;
}; };
/** /**

View File

@ -350,6 +350,7 @@ void x_draw_decoration(Con *con) {
p->con_deco_rect = con->deco_rect; p->con_deco_rect = con->deco_rect;
p->background = config.client.background; p->background = config.client.background;
p->con_is_leaf = con_is_leaf(con); p->con_is_leaf = con_is_leaf(con);
p->parent_orientation = con_orientation(parent);
if (con->deco_render_params != NULL && if (con->deco_render_params != NULL &&
(con->window == NULL || !con->window->name_x_changed) && (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 && TAILQ_PREV(con, nodes_head, nodes) == NULL &&
con->parent->type != CT_FLOATING_CON) { con->parent->type != CT_FLOATING_CON) {
xcb_change_gc(conn, con->pm_gc, XCB_GC_FOREGROUND, (uint32_t[]){ p->color->indicator }); 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[]){ 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 } }); { r->width + br.width + br.x, br.y, r->width, r->height + br.height } });
else else