Skip to content

Commit

Permalink
swaybar: when hiding bar, save old height to be restored upon reshow
Browse files Browse the repository at this point in the history
Previously, when the bar was hidden, the height would be set to 0.
This meant that if the bar was empty upon reshow, it would not render
since the height was still 0, which made it seem there was a problem.
Now, the height is not reset, but the width is, to indicate upon reshow
that the layer surface needed reconfiguring.
  • Loading branch information
ianyfan committed Oct 13, 2018
1 parent 428fd07 commit f3e9d0e
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 2 deletions.
1 change: 0 additions & 1 deletion swaybar/bar.c
Original file line number Diff line number Diff line change
Expand Up @@ -367,7 +367,6 @@ static void destroy_layer_surface(struct swaybar_output *output) {
zwlr_layer_surface_v1_destroy(output->layer_surface);
wl_surface_attach(output->surface, NULL, 0, 0); // detach buffer
output->layer_surface = NULL;
output->height = 0;
output->width = 0;
output->frame_scheduled = false;
}
Expand Down
2 changes: 1 addition & 1 deletion swaybar/render.c
Original file line number Diff line number Diff line change
Expand Up @@ -519,7 +519,7 @@ void render_frame(struct swaybar_output *output) {
if (config_height >= 0 && height < (uint32_t)config_height) {
height = config_height;
}
if (height != output->height) {
if (height != output->height || output->width == 0) {
// Reconfigure surface
zwlr_layer_surface_v1_set_size(output->layer_surface, 0, height);
if (strcmp(output->bar->config->mode, "dock") == 0) {
Expand Down

0 comments on commit f3e9d0e

Please sign in to comment.