rendering: fix bottom line of tabbed borders decoration not continuous
fixes #814 Signed-off-by: noxxun <noxxun@gmail.com>
This commit is contained in:
parent
04c58c7325
commit
14e6fc77ad
12
src/x.c
12
src/x.c
|
@ -467,12 +467,20 @@ void x_draw_decoration(Con *con) {
|
||||||
/* 5: draw two unconnected lines in border color */
|
/* 5: draw two unconnected lines in border color */
|
||||||
xcb_change_gc(conn, parent->pm_gc, XCB_GC_FOREGROUND, (uint32_t[]){ p->color->border });
|
xcb_change_gc(conn, parent->pm_gc, XCB_GC_FOREGROUND, (uint32_t[]){ p->color->border });
|
||||||
Rect *dr = &(con->deco_rect);
|
Rect *dr = &(con->deco_rect);
|
||||||
|
int deco_diff_l = 2;
|
||||||
|
int deco_diff_r = 2;
|
||||||
|
if (parent->layout == L_TABBED) {
|
||||||
|
if (TAILQ_PREV(con, nodes_head, nodes) != NULL)
|
||||||
|
deco_diff_l = 0;
|
||||||
|
if (TAILQ_NEXT(con, nodes) != NULL)
|
||||||
|
deco_diff_r = 0;
|
||||||
|
}
|
||||||
xcb_segment_t segments[] = {
|
xcb_segment_t segments[] = {
|
||||||
{ dr->x, dr->y,
|
{ dr->x, dr->y,
|
||||||
dr->x + dr->width - 1, dr->y },
|
dr->x + dr->width - 1, dr->y },
|
||||||
|
|
||||||
{ dr->x + 2, dr->y + dr->height - 1,
|
{ dr->x + deco_diff_l, dr->y + dr->height - 1,
|
||||||
dr->x + dr->width - 3, dr->y + dr->height - 1 }
|
dr->x - deco_diff_r + dr->width - 1, dr->y + dr->height - 1 }
|
||||||
};
|
};
|
||||||
xcb_poly_segment(conn, parent->pixmap, parent->pm_gc, 2, segments);
|
xcb_poly_segment(conn, parent->pixmap, parent->pm_gc, 2, segments);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue