aboutsummaryrefslogtreecommitdiff
path: root/sway/tree
diff options
context:
space:
mode:
authorBrian Ashworth <bosrsf04@gmail.com>2018-05-11 18:44:56 -0400
committerBrian Ashworth <bosrsf04@gmail.com>2018-05-11 18:44:56 -0400
commit3db7fc2bb2c35d545b2a0a72f5554af833bd447f (patch)
tree1da6e43dca62aa55501a10598acd33dcc2d7142e /sway/tree
parent2217518bd554d0f11dafa7ec4e8f35f2e4762fbd (diff)
Implement hide_edge_borders
Diffstat (limited to 'sway/tree')
-rw-r--r--sway/tree/view.c56
1 files changed, 46 insertions, 10 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c
index afd7eade..c2496f0d 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -100,6 +100,9 @@ void view_autoconfigure(struct sway_view *view) {
return;
}
+ struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE);
+ int other_views = ws->children->length - 1;
+
double x, y, width, height;
x = y = width = height = 0;
switch (view->border) {
@@ -110,18 +113,51 @@ void view_autoconfigure(struct sway_view *view) {
height = view->swayc->height;
break;
case B_PIXEL:
- x = view->swayc->x + view->border_thickness;
- y = view->swayc->y + view->border_thickness;
- width = view->swayc->width - view->border_thickness * 2;
- height = view->swayc->height - view->border_thickness * 2;
+ if (view->swayc->layout > L_VERT
+ || config->hide_edge_borders == E_NONE
+ || config->hide_edge_borders == E_HORIZONTAL
+ || (config->hide_edge_borders == E_SMART && other_views)) {
+ x = view->swayc->x + view->border_thickness;
+ width = view->swayc->width - view->border_thickness * 2;
+ } else {
+ x = view->swayc->x;
+ width = view->swayc->width;
+ }
+ if (view->swayc->layout > L_VERT
+ || config->hide_edge_borders == E_NONE
+ || config->hide_edge_borders == E_VERTICAL
+ || (config->hide_edge_borders == E_SMART && other_views)) {
+ y = view->swayc->y + view->border_thickness;
+ height = view->swayc->height - view->border_thickness * 2;
+ } else {
+ y = view->swayc->y;
+ height = view->swayc->height;
+ }
break;
case B_NORMAL:
- // Height is: border + title height + border + view height + border
- x = view->swayc->x + view->border_thickness;
- y = view->swayc->y + config->font_height + view->border_thickness * 2;
- width = view->swayc->width - view->border_thickness * 2;
- height = view->swayc->height - config->font_height
- - view->border_thickness * 3;
+ if (view->swayc->layout > L_VERT
+ || config->hide_edge_borders == E_NONE
+ || config->hide_edge_borders == E_HORIZONTAL
+ || (config->hide_edge_borders == E_SMART && other_views)) {
+ x = view->swayc->x + view->border_thickness;
+ width = view->swayc->width - view->border_thickness * 2;
+ } else {
+ x = view->swayc->x;
+ width = view->swayc->width;
+ }
+ if (view->swayc->layout > L_VERT
+ || config->hide_edge_borders == E_NONE
+ || config->hide_edge_borders == E_VERTICAL
+ || (config->hide_edge_borders == E_SMART && other_views)) {
+ // Height is: border + title height + border + view height + border
+ y = view->swayc->y + config->font_height
+ + view->border_thickness * 2;
+ height = view->swayc->height - config->font_height
+ - view->border_thickness * 3;
+ } else {
+ y = view->swayc->y;
+ height = view->swayc->height;
+ }
break;
}