aboutsummaryrefslogtreecommitdiffstats
path: root/swaybar/status_line.c
diff options
context:
space:
mode:
authorLibravatar Hristo Venev <hristo@venev.name>2020-02-01 18:08:00 +0100
committerLibravatar Simon Ser <contact@emersion.fr>2020-02-10 18:58:09 +0100
commit7affe5c1bda53a2bb57295b7b6dbe4494e8c007b (patch)
treed55e64c43a785f15c6abf77d1891bb9d70b3e529 /swaybar/status_line.c
parentDo not truncate pointer coordinates to int. (diff)
downloadsway-7affe5c1bda53a2bb57295b7b6dbe4494e8c007b.tar.gz
sway-7affe5c1bda53a2bb57295b7b6dbe4494e8c007b.tar.zst
sway-7affe5c1bda53a2bb57295b7b6dbe4494e8c007b.zip
swaybar: fix i3bar relative coordinates when scaling is used
24e8ba048aef4751c6fa1d5982ee634f921e6cf6 did not take scaling into account. The hotspot size used pixel coordinates, the absolute coordinates were logical, and the relative coordinates were completely wrong. This commit makes all coordinates use logical values. If `"float_event_coords":true` is sent in the handshake message, coordinates are sent as floating-point values. The "scale" field is an integer containing the scale value.
Diffstat (limited to 'swaybar/status_line.c')
-rw-r--r--swaybar/status_line.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/swaybar/status_line.c b/swaybar/status_line.c
index 2a9e1da8..fb9271f8 100644
--- a/swaybar/status_line.c
+++ b/swaybar/status_line.c
@@ -85,6 +85,13 @@ bool status_handle_readable(struct status_line *status) {
85 } 85 }
86 } 86 }
87 87
88 json_object *float_event_coords;
89 if (json_object_object_get_ex(header, "float_event_coords", &float_event_coords)
90 && json_object_get_boolean(float_event_coords)) {
91 sway_log(SWAY_DEBUG, "Enabling floating-point coordinates.");
92 status->float_event_coords = true;
93 }
94
88 json_object *signal; 95 json_object *signal;
89 if (json_object_object_get_ex(header, "stop_signal", &signal)) { 96 if (json_object_object_get_ex(header, "stop_signal", &signal)) {
90 status->stop_signal = json_object_get_int(signal); 97 status->stop_signal = json_object_get_int(signal);