From 2510e3df384d9ab7b27e66c27371ec44606f5d8e Mon Sep 17 00:00:00 2001 From: db Date: Sun, 24 Feb 2019 10:00:15 +0100 Subject: add --i3 flag to hide_edge_borders Enables i3-compatible behavior regarding hiding the title bar on tabbed and stacked containers with one child. Related issues and merge requests: #3031, #3002, #2912, #2987. --- sway/tree/view.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'sway/tree/view.c') diff --git a/sway/tree/view.c b/sway/tree/view.c index ca13def7..14cc07d9 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -246,14 +246,17 @@ void view_autoconfigure(struct sway_view *view) { // In a tabbed or stacked container, the container's y is the top of the // title area. We have to offset the surface y by the height of the title, // bar, and disable any top border because we'll always have the title bar. - enum sway_container_layout layout = container_parent_layout(con); - if (layout == L_TABBED && !container_is_floating(con)) { - y_offset = container_titlebar_height(); - con->border_top = false; - } else if (layout == L_STACKED && !container_is_floating(con)) { - list_t *siblings = container_get_siblings(con); - y_offset = container_titlebar_height() * siblings->length; - con->border_top = false; + list_t *siblings = container_get_siblings(con); + bool show_titlebar = siblings->length > 1 || !config->hide_lone_tab; + if (show_titlebar && !container_is_floating(con)) { + enum sway_container_layout layout = container_parent_layout(con); + if (layout == L_TABBED) { + y_offset = container_titlebar_height(); + con->border_top = false; + } else if (layout == L_STACKED) { + y_offset = container_titlebar_height() * siblings->length; + con->border_top = false; + } } double x, y, width, height; -- cgit v1.2.3-54-g00ecf