summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Frantisek Fladung <ametisf@gmail.com>2017-01-12 12:11:04 +0100
committerLibravatar Frantisek Fladung <ametisf@gmail.com>2017-01-12 12:40:28 +0100
commitc04819e8c080e40e1e872c8624c60c4a51087019 (patch)
treeefa11e933930ba845663f62c96d62762286969d4
parentFix #1008 (diff)
downloadsway-c04819e8c080e40e1e872c8624c60c4a51087019.tar.gz
sway-c04819e8c080e40e1e872c8624c60c4a51087019.tar.zst
sway-c04819e8c080e40e1e872c8624c60c4a51087019.zip
Implement hide_edge_borders smart (like in i3 4.13)
-rw-r--r--include/sway/config.h3
-rw-r--r--sway/commands/hide_edge_borders.c2
-rw-r--r--sway/layout.c7
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
184enum command_context { 185enum 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