aboutsummaryrefslogtreecommitdiffstats
path: root/sway/tree/view.c
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-10-27 11:23:02 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-10-27 11:23:02 +1000
commit65328ef60c9468ae44b4b1d6316d604c47293ec3 (patch)
tree6e4e16650740ae2ad1f76bdd357d2747e7569a8e /sway/tree/view.c
parentMerge pull request #2993 from mwenzkowski/fix-2992 (diff)
downloadsway-65328ef60c9468ae44b4b1d6316d604c47293ec3.tar.gz
sway-65328ef60c9468ae44b4b1d6316d604c47293ec3.tar.zst
sway-65328ef60c9468ae44b4b1d6316d604c47293ec3.zip
Respect border settings when rendering lone tabbed/stacked child
In i3, when a child of a tabbed or stacked container has no siblings, its border settings are respected. This patch achieves the same effect by rendering a lone tabbed/stacked child as if it's a linear container. This makes the border settings be respected. Over in view_autoconfigure, we compensate for this by only adjusting `y_offset` if there's multiple children.
Diffstat (limited to 'sway/tree/view.c')
-rw-r--r--sway/tree/view.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c
index 4bc9e0f3..5a1b2e37 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -242,23 +242,23 @@ void view_autoconfigure(struct sway_view *view) {
242 view->border_bottom = bottom_y != ws->y + ws->height; 242 view->border_bottom = bottom_y != ws->y + ws->height;
243 } 243 }
244 244
245 double x, y, width, height;
246 x = y = width = height = 0;
247 double y_offset = 0;
248
249 // In a tabbed or stacked container, the container's y is the top of the 245 // In a tabbed or stacked container, the container's y is the top of the
250 // title area. We have to offset the surface y by the height of the title, 246 // title area. We have to offset the surface y by the height of the title,
251 // bar, and disable any top border because we'll always have the title bar. 247 // bar, and disable any top border because we'll always have the title bar.
248 double y_offset = 0;
252 enum sway_container_layout layout = container_parent_layout(con); 249 enum sway_container_layout layout = container_parent_layout(con);
253 if (layout == L_TABBED && !container_is_floating(con)) { 250 list_t *siblings = container_get_siblings(con);
254 y_offset = container_titlebar_height(); 251 if (siblings->length > 1 && !container_is_floating(con)) {
255 view->border_top = false; 252 if (layout == L_TABBED) {
256 } else if (layout == L_STACKED && !container_is_floating(con)) { 253 y_offset = container_titlebar_height();
257 list_t *siblings = container_get_siblings(con); 254 view->border_top = false;
258 y_offset = container_titlebar_height() * siblings->length; 255 } else if (layout == L_STACKED) {
259 view->border_top = false; 256 y_offset = container_titlebar_height() * siblings->length;
257 view->border_top = false;
258 }
260 } 259 }
261 260
261 double x, y, width, height = 0;
262 switch (view->border) { 262 switch (view->border) {
263 case B_CSD: 263 case B_CSD:
264 case B_NONE: 264 case B_NONE: