Align lower line of bar decoration to border width
In normal border style, two horizontal lines are drawn to outline the bar decoration. The lower line leaves a gap to the left and right to align with the border. This gap was hardcoded to 2 pixels. Now it matches the current border width, if any. In stacked layout, only the bottommost bar is aligned. In tabbed layout, no gaps are left in order to close the outline and make the notion of a tab more clear.
This commit is contained in:
parent
80db544e26
commit
5762456d89
10
src/x.c
10
src/x.c
|
@ -473,12 +473,12 @@ void x_draw_decoration(Con *con) {
|
||||||
/* 5: draw two unconnected horizontal lines in border color */
|
/* 5: draw two unconnected horizontal 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;
|
adjacent_t borders_to_hide = con_adjacent_borders(con) & config.hide_edge_borders;
|
||||||
int deco_diff_r = 2;
|
int deco_diff_l = borders_to_hide & ADJ_LEFT_SCREEN_EDGE ? 0 : con->current_border_width;
|
||||||
if (parent->layout == L_TABBED) {
|
int deco_diff_r = borders_to_hide & ADJ_RIGHT_SCREEN_EDGE ? 0 : con-> current_border_width;
|
||||||
if (TAILQ_PREV(con, nodes_head, nodes) != NULL)
|
if (parent->layout == L_TABBED ||
|
||||||
|
(parent->layout == L_STACKED && TAILQ_NEXT(con, nodes) != NULL)) {
|
||||||
deco_diff_l = 0;
|
deco_diff_l = 0;
|
||||||
if (TAILQ_NEXT(con, nodes) != NULL)
|
|
||||||
deco_diff_r = 0;
|
deco_diff_r = 0;
|
||||||
}
|
}
|
||||||
xcb_segment_t segments[] = {
|
xcb_segment_t segments[] = {
|
||||||
|
|
Loading…
Reference in New Issue