aboutsummaryrefslogtreecommitdiffstats
path: root/swaybar/i3bar.c
diff options
context:
space:
mode:
Diffstat (limited to 'swaybar/i3bar.c')
-rw-r--r--swaybar/i3bar.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/swaybar/i3bar.c b/swaybar/i3bar.c
index 5c8b87a2..4bcd5843 100644
--- a/swaybar/i3bar.c
+++ b/swaybar/i3bar.c
@@ -267,8 +267,8 @@ bool i3bar_handle_readable(struct status_line *status) {
267} 267}
268 268
269enum hotspot_event_handling i3bar_block_send_click(struct status_line *status, 269enum hotspot_event_handling i3bar_block_send_click(struct status_line *status,
270 struct i3bar_block *block, int x, int y, int rx, int ry, int w, int h, 270 struct i3bar_block *block, double x, double y, double rx, double ry,
271 uint32_t button) { 271 double w, double h, int scale, uint32_t button) {
272 sway_log(SWAY_DEBUG, "block %s clicked", block->name); 272 sway_log(SWAY_DEBUG, "block %s clicked", block->name);
273 if (!block->name || !status->click_events) { 273 if (!block->name || !status->click_events) {
274 return HOTSPOT_PROCESS; 274 return HOTSPOT_PROCESS;
@@ -285,12 +285,22 @@ enum hotspot_event_handling i3bar_block_send_click(struct status_line *status,
285 json_object_object_add(event_json, "button", 285 json_object_object_add(event_json, "button",
286 json_object_new_int(event_to_x11_button(button))); 286 json_object_new_int(event_to_x11_button(button)));
287 json_object_object_add(event_json, "event", json_object_new_int(button)); 287 json_object_object_add(event_json, "event", json_object_new_int(button));
288 json_object_object_add(event_json, "x", json_object_new_int(x)); 288 if (status->float_event_coords) {
289 json_object_object_add(event_json, "y", json_object_new_int(y)); 289 json_object_object_add(event_json, "x", json_object_new_double(x));
290 json_object_object_add(event_json, "relative_x", json_object_new_int(rx)); 290 json_object_object_add(event_json, "y", json_object_new_double(y));
291 json_object_object_add(event_json, "relative_y", json_object_new_int(ry)); 291 json_object_object_add(event_json, "relative_x", json_object_new_double(rx));
292 json_object_object_add(event_json, "width", json_object_new_int(w)); 292 json_object_object_add(event_json, "relative_y", json_object_new_double(ry));
293 json_object_object_add(event_json, "height", json_object_new_int(h)); 293 json_object_object_add(event_json, "width", json_object_new_double(w));
294 json_object_object_add(event_json, "height", json_object_new_double(h));
295 } else {
296 json_object_object_add(event_json, "x", json_object_new_int(x));
297 json_object_object_add(event_json, "y", json_object_new_int(y));
298 json_object_object_add(event_json, "relative_x", json_object_new_int(rx));
299 json_object_object_add(event_json, "relative_y", json_object_new_int(ry));
300 json_object_object_add(event_json, "width", json_object_new_int(w));
301 json_object_object_add(event_json, "height", json_object_new_int(h));
302 }
303 json_object_object_add(event_json, "scale", json_object_new_int(scale));
294 if (dprintf(status->write_fd, "%s%s\n", status->clicked ? "," : "", 304 if (dprintf(status->write_fd, "%s%s\n", status->clicked ? "," : "",
295 json_object_to_json_string(event_json)) < 0) { 305 json_object_to_json_string(event_json)) < 0) {
296 status_error(status, "[failed to write click event]"); 306 status_error(status, "[failed to write click event]");