aboutsummaryrefslogtreecommitdiff
path: root/swaybar/render.c
diff options
context:
space:
mode:
Diffstat (limited to 'swaybar/render.c')
-rw-r--r--swaybar/render.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/swaybar/render.c b/swaybar/render.c
index 7303e70f..2d848bfa 100644
--- a/swaybar/render.c
+++ b/swaybar/render.c
@@ -115,6 +115,10 @@ static enum hotspot_event_handling block_hotspot_callback(struct swaybar_output
return i3bar_block_send_click(status, block, x, y, button);
}
+static void i3bar_block_unref_callback(void *data) {
+ i3bar_block_unref(data);
+}
+
static uint32_t render_status_block(cairo_t *cairo,
struct swaybar_config *config, struct swaybar_output *output,
struct i3bar_block *block, double *x,
@@ -179,8 +183,9 @@ static uint32_t render_status_block(cairo_t *cairo,
hotspot->width = width;
hotspot->height = height;
hotspot->callback = block_hotspot_callback;
- hotspot->destroy = NULL;
+ hotspot->destroy = i3bar_block_unref_callback;
hotspot->data = block;
+ block->ref_count++;
wl_list_insert(&output->hotspots, &hotspot->link);
double pos = *x;