diff options
-rw-r--r-- | include/sway/config.h | 3 | ||||
-rw-r--r-- | sway/commands/hide_edge_borders.c | 2 | ||||
-rw-r--r-- | sway/layout.c | 7 |
3 files changed, 11 insertions, 1 deletions
diff --git a/include/sway/config.h b/include/sway/config.h index 4a14cd36..febde63d 100644 --- a/include/sway/config.h +++ b/include/sway/config.h | |||
@@ -178,7 +178,8 @@ enum edge_border_types { | |||
178 | E_NONE, /**< Don't hide edge borders */ | 178 | E_NONE, /**< Don't hide edge borders */ |
179 | E_VERTICAL, /**< hide vertical edge borders */ | 179 | E_VERTICAL, /**< hide vertical edge borders */ |
180 | E_HORIZONTAL, /**< hide horizontal edge borders */ | 180 | E_HORIZONTAL, /**< hide horizontal edge borders */ |
181 | E_BOTH /**< hide vertical and horizontal edge borders */ | 181 | E_BOTH, /**< hide vertical and horizontal edge borders */ |
182 | E_SMART /**< hide both if precisely one window is present in workspace */ | ||
182 | }; | 183 | }; |
183 | 184 | ||
184 | enum command_context { | 185 | enum command_context { |
diff --git a/sway/commands/hide_edge_borders.c b/sway/commands/hide_edge_borders.c index 0be940c1..cb4f052d 100644 --- a/sway/commands/hide_edge_borders.c +++ b/sway/commands/hide_edge_borders.c | |||
@@ -15,6 +15,8 @@ struct cmd_results *cmd_hide_edge_borders(int argc, char **argv) { | |||
15 | config->hide_edge_borders = E_HORIZONTAL; | 15 | config->hide_edge_borders = E_HORIZONTAL; |
16 | } else if (strcasecmp(argv[0], "both") == 0) { | 16 | } else if (strcasecmp(argv[0], "both") == 0) { |
17 | config->hide_edge_borders = E_BOTH; | 17 | config->hide_edge_borders = E_BOTH; |
18 | } else if (strcasecmp(argv[0], "smart") == 0) { | ||
19 | config->hide_edge_borders = E_SMART; | ||
18 | } else { | 20 | } else { |
19 | return cmd_results_new(CMD_INVALID, "hide_edge_borders", | 21 | return cmd_results_new(CMD_INVALID, "hide_edge_borders", |
20 | "Expected 'hide_edge_borders <none|vertical|horizontal|both>'"); | 22 | "Expected 'hide_edge_borders <none|vertical|horizontal|both>'"); |
diff --git a/sway/layout.c b/sway/layout.c index ea4a680d..bb37a360 100644 --- a/sway/layout.c +++ b/sway/layout.c | |||
@@ -665,6 +665,13 @@ void update_geometry(swayc_t *container) { | |||
665 | border_bottom = 0; | 665 | border_bottom = 0; |
666 | } | 666 | } |
667 | } | 667 | } |
668 | |||
669 | if (config->hide_edge_borders == E_SMART && workspace->children->length == 1) { | ||
670 | border_top = 0; | ||
671 | border_bottom = 0; | ||
672 | border_left = 0; | ||
673 | border_right = 0; | ||
674 | } | ||
668 | } | 675 | } |
669 | 676 | ||
670 | int title_bar_height = config->font_height + 4; //borders + padding | 677 | int title_bar_height = config->font_height + 4; //borders + padding |