aboutsummaryrefslogtreecommitdiffstats
path: root/swaybar/render.c
diff options
context:
space:
mode:
Diffstat (limited to 'swaybar/render.c')
-rw-r--r--swaybar/render.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/swaybar/render.c b/swaybar/render.c
index a878805e..95f6e5be 100644
--- a/swaybar/render.c
+++ b/swaybar/render.c
@@ -160,7 +160,7 @@ static void render_sharp_line(cairo_t *cairo, uint32_t color,
160 160
161static enum hotspot_event_handling block_hotspot_callback( 161static enum hotspot_event_handling block_hotspot_callback(
162 struct swaybar_output *output, struct swaybar_hotspot *hotspot, 162 struct swaybar_output *output, struct swaybar_hotspot *hotspot,
163 double x, double y, uint32_t button, void *data) { 163 double x, double y, uint32_t button, bool released, void *data) {
164 struct i3bar_block *block = data; 164 struct i3bar_block *block = data;
165 struct status_line *status = output->bar->status; 165 struct status_line *status = output->bar->status;
166 return i3bar_block_send_click(status, block, x, y, 166 return i3bar_block_send_click(status, block, x, y,
@@ -168,7 +168,7 @@ static enum hotspot_event_handling block_hotspot_callback(
168 y - (double)hotspot->y, 168 y - (double)hotspot->y,
169 (double)hotspot->width, 169 (double)hotspot->width,
170 (double)hotspot->height, 170 (double)hotspot->height,
171 output->scale, button); 171 output->scale, button, released);
172} 172}
173 173
174static void i3bar_block_unref_callback(void *data) { 174static void i3bar_block_unref_callback(void *data) {
@@ -599,10 +599,15 @@ static uint32_t render_binding_mode_indicator(struct render_context *ctx,
599 599
600static enum hotspot_event_handling workspace_hotspot_callback( 600static enum hotspot_event_handling workspace_hotspot_callback(
601 struct swaybar_output *output, struct swaybar_hotspot *hotspot, 601 struct swaybar_output *output, struct swaybar_hotspot *hotspot,
602 double x, double y, uint32_t button, void *data) { 602 double x, double y, uint32_t button, bool released, void *data) {
603 if (button != BTN_LEFT) { 603 if (button != BTN_LEFT) {
604 return HOTSPOT_PROCESS; 604 return HOTSPOT_PROCESS;
605 } 605 }
606 if (released) {
607 // Since we handle the pressed event, also handle the released event
608 // to block it from falling through to a binding in the bar
609 return HOTSPOT_IGNORE;
610 }
606 ipc_send_workspace_command(output->bar, (const char *)data); 611 ipc_send_workspace_command(output->bar, (const char *)data);
607 return HOTSPOT_IGNORE; 612 return HOTSPOT_IGNORE;
608} 613}