]> git.sur5r.net Git - i3/i3/commitdiff
handle_button: Use full render width for calculations
authorOrestis Floros <orestisf1993@gmail.com>
Thu, 28 Mar 2019 17:57:32 +0000 (19:57 +0200)
committerOrestis Floros <orestisf1993@gmail.com>
Thu, 28 Mar 2019 19:05:29 +0000 (21:05 +0200)
Fixes #3664

Also, click events' width will now always be >= min_width.

i3bar/src/xcb.c

index 31ae08f05c01d9c87d8fb0488a9c83aa1a25cffe..89b658d5c0dcab9736324d76bc8923a9090d70a5 100644 (file)
@@ -521,15 +521,16 @@ static void handle_button(xcb_button_press_event_t *event) {
                 if (i3string_get_num_bytes(text) == 0)
                     continue;
 
+                const uint32_t full_render_width = render->width + render->x_offset + render->x_append;
                 const int relative_x = statusline_x - last_block_x;
-                if (relative_x >= 0 && (uint32_t)relative_x <= render->width) {
+                if (relative_x >= 0 && (uint32_t)relative_x <= full_render_width) {
                     send_block_clicked(event->detail, block->name, block->instance,
-                                       event->root_x, event->root_y, relative_x, event->event_y, render->width, bar_height,
+                                       event->root_x, event->root_y, relative_x, event->event_y, full_render_width, bar_height,
                                        event->state);
                     return;
                 }
 
-                last_block_x += render->width + render->x_append + render->x_offset + block->sep_block_width;
+                last_block_x += full_render_width + block->sep_block_width;
             }
         }
     }