aboutsummaryrefslogtreecommitdiffstats
path: root/sway/desktop/output.c
diff options
context:
space:
mode:
authorLibravatar Dimitris Triantafyllidis <dtr@localhost.localdomain>2021-02-22 13:32:07 +0200
committerLibravatar Tudor Brindus <me@tbrindus.ca>2021-02-22 21:23:35 -0500
commitaac1582ea90897a25408a520b8f3bde0552a69cc (patch)
tree1d65c61f6287ba1be3a03d3f492d17ae5b046cd0 /sway/desktop/output.c
parentview: Set parent for view_child subsurfaces on init (diff)
downloadsway-aac1582ea90897a25408a520b8f3bde0552a69cc.tar.gz
sway-aac1582ea90897a25408a520b8f3bde0552a69cc.tar.zst
sway-aac1582ea90897a25408a520b8f3bde0552a69cc.zip
Fix #5643, #5064: rounding issues in floating-point -> integer conversions
Currently, various floating-point expressions involving the coordinates of borders, titlebars and content surfaces are directly assigned to integers, and so they are rounded towards zero. This results in off-by-one distances between these elements when the signs of their coordinates differ. Fixed by wrapping these expressions with a call to floor before the assignment.
Diffstat (limited to 'sway/desktop/output.c')
-rw-r--r--sway/desktop/output.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
index 691a285d..7871a136 100644
--- a/sway/desktop/output.c
+++ b/sway/desktop/output.c
@@ -105,8 +105,8 @@ static bool get_surface_box(struct surface_iterator_data *data,
105 data->rotation); 105 data->rotation);
106 106
107 struct wlr_box box = { 107 struct wlr_box box = {
108 .x = data->ox + _sx, 108 .x = floor(data->ox + _sx),
109 .y = data->oy + _sy, 109 .y = floor(data->oy + _sy),
110 .width = sw, 110 .width = sw,
111 .height = sh, 111 .height = sh,
112 }; 112 };