aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Fan <ianfan0@gmail.com>2018-10-13 11:56:56 +0100
committerIan Fan <ianfan0@gmail.com>2018-10-14 13:33:12 +0100
commit4dba7c084acb6ca1c9d220f8eac918c046c199ad (patch)
treeff3a52a57ee7e8a9a3623e53422fe841afe6d124
parenta29ee77411be3f3fe988617d91cc5bed603e3dcb (diff)
downloadsway-4dba7c084acb6ca1c9d220f8eac918c046c199ad.tar.xz
swaybar: when hiding bar, save old height to be restored upon reshow
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.
-rw-r--r--swaybar/bar.c1
-rw-r--r--swaybar/render.c2
2 files changed, 1 insertions, 2 deletions
diff --git a/swaybar/bar.c b/swaybar/bar.c
index f636f0c9..9f72c94c 100644
--- a/swaybar/bar.c
+++ b/swaybar/bar.c
@@ -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;
}
diff --git a/swaybar/render.c b/swaybar/render.c
index 670630cf..097eb462 100644
--- a/swaybar/render.c
+++ b/swaybar/render.c
@@ -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) {