diff options
author | Frantisek Fladung <ametisf@gmail.com> | 2017-01-12 12:11:04 +0100 |
---|---|---|
committer | Frantisek Fladung <ametisf@gmail.com> | 2017-01-12 12:40:28 +0100 |
commit | c04819e8c080e40e1e872c8624c60c4a51087019 (patch) | |
tree | efa11e933930ba845663f62c96d62762286969d4 | |
parent | 527c259d063a4d7ca2bfd62b3b877bb70419535b (diff) |
Implement hide_edge_borders smart (like in i3 4.13)
-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 { E_NONE, /**< Don't hide edge borders */ E_VERTICAL, /**< hide vertical edge borders */ E_HORIZONTAL, /**< hide horizontal edge borders */ - E_BOTH /**< hide vertical and horizontal edge borders */ + E_BOTH, /**< hide vertical and horizontal edge borders */ + E_SMART /**< hide both if precisely one window is present in workspace */ }; 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) { config->hide_edge_borders = E_HORIZONTAL; } else if (strcasecmp(argv[0], "both") == 0) { config->hide_edge_borders = E_BOTH; + } else if (strcasecmp(argv[0], "smart") == 0) { + config->hide_edge_borders = E_SMART; } else { return cmd_results_new(CMD_INVALID, "hide_edge_borders", "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) { border_bottom = 0; } } + + if (config->hide_edge_borders == E_SMART && workspace->children->length == 1) { + border_top = 0; + border_bottom = 0; + border_left = 0; + border_right = 0; + } } int title_bar_height = config->font_height + 4; //borders + padding |