diff options
author | Drew DeVault <sir@cmpwn.com> | 2019-01-13 20:36:08 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-13 20:36:08 -0500 |
commit | fc93cd20dc108544c7cc8fced7aebed58c58a770 (patch) | |
tree | 87eb259f5f02c6bcf5240bf677d9569ee9e72518 | |
parent | 4eb0767414fe404adf1c0b0be7c719f5ac115684 (diff) | |
parent | 124085eba96362403a757061032659c0a06aa22e (diff) |
Merge pull request #3397 from RedSoxFan/fix-swaybar-height
swaybar: obey height if given
-rw-r--r-- | sway/config/bar.c | 2 | ||||
-rw-r--r-- | sway/sway-bar.5.scd | 2 | ||||
-rw-r--r-- | swaybar/render.c | 20 |
3 files changed, 15 insertions, 9 deletions
diff --git a/sway/config/bar.c b/sway/config/bar.c index 101562d1..701bf051 100644 --- a/sway/config/bar.c +++ b/sway/config/bar.c @@ -96,7 +96,7 @@ struct bar_config *default_bar_config(void) { bar->pango_markup = false; bar->swaybar_command = NULL; bar->font = NULL; - bar->height = -1; + bar->height = 0; bar->workspace_buttons = true; bar->wrap_scroll = false; bar->separator_symbol = NULL; diff --git a/sway/sway-bar.5.scd b/sway/sway-bar.5.scd index b345b392..e1a4a937 100644 --- a/sway/sway-bar.5.scd +++ b/sway/sway-bar.5.scd @@ -69,7 +69,7 @@ Sway allows configuring swaybar in the sway configuration file. use. *height* <height> - Sets the height of the bar. Default height will match the font size. + Sets the height of the bar. Default height (0) will match the font size. *bindsym* [--release] button<n> <command> Executes _command_ when mouse button _n_ has been pressed (or if _released_ diff --git a/swaybar/render.c b/swaybar/render.c index 993c8228..12dd3b07 100644 --- a/swaybar/render.c +++ b/swaybar/render.c @@ -45,7 +45,8 @@ static uint32_t render_status_line_error(cairo_t *cairo, uint32_t ideal_height = text_height + ws_vertical_padding * 2; uint32_t ideal_surface_height = ideal_height / output->scale; - if (output->height < ideal_surface_height) { + if (!output->bar->config->height && + output->height < ideal_surface_height) { return ideal_surface_height; } *x -= text_width + margin; @@ -77,7 +78,8 @@ static uint32_t render_status_line_text(cairo_t *cairo, uint32_t ideal_height = text_height + ws_vertical_padding * 2; uint32_t ideal_surface_height = ideal_height / output->scale; - if (output->height < ideal_surface_height) { + if (!output->bar->config->height && + output->height < ideal_surface_height) { return ideal_surface_height; } @@ -164,7 +166,8 @@ static uint32_t render_status_block(cairo_t *cairo, double block_width = width; uint32_t ideal_height = text_height + ws_vertical_padding * 2; uint32_t ideal_surface_height = ideal_height / output->scale; - if (output->height < ideal_surface_height) { + if (!output->bar->config->height && + output->height < ideal_surface_height) { return ideal_surface_height; } @@ -186,7 +189,8 @@ static uint32_t render_status_block(cairo_t *cairo, output->scale, false, "%s", config->sep_symbol); uint32_t _ideal_height = sep_height + ws_vertical_padding * 2; uint32_t _ideal_surface_height = _ideal_height / output->scale; - if (output->height < _ideal_surface_height) { + if (!output->bar->config->height && + output->height < _ideal_surface_height) { return _ideal_surface_height; } if (sep_width > sep_block_width) { @@ -333,7 +337,8 @@ static uint32_t render_binding_mode_indicator(cairo_t *cairo, uint32_t ideal_height = text_height + ws_vertical_padding * 2 + border_width * 2; uint32_t ideal_surface_height = ideal_height / output->scale; - if (output->height < ideal_surface_height) { + if (!output->bar->config->height && + output->height < ideal_surface_height) { return ideal_surface_height; } uint32_t width = text_width + ws_horizontal_padding * 2 + border_width * 2; @@ -399,7 +404,8 @@ static uint32_t render_workspace_button(cairo_t *cairo, uint32_t ideal_height = ws_vertical_padding * 2 + text_height + border_width * 2; uint32_t ideal_surface_height = ideal_height / output->scale; - if (output->height < ideal_surface_height) { + if (!output->bar->config->height && + output->height < ideal_surface_height) { return ideal_surface_height; } @@ -526,7 +532,7 @@ void render_frame(struct swaybar_output *output) { cairo_restore(cairo); uint32_t height = render_to_cairo(cairo, output); int config_height = output->bar->config->height; - if (config_height >= 0 && height < (uint32_t)config_height) { + if (config_height > 0) { height = config_height; } if (height != output->height || output->width == 0) { |