summaryrefslogtreecommitdiff
path: root/sway/desktop/output.c
diff options
context:
space:
mode:
authorDimitris Triantafyllidis <[email protected]>2021-02-22 13:32:07 +0200
committerTudor Brindus <[email protected]>2021-02-22 21:23:35 -0500
commitaac1582ea90897a25408a520b8f3bde0552a69cc (patch)
tree1d65c61f6287ba1be3a03d3f492d17ae5b046cd0 /sway/desktop/output.c
parent1a6471be172fc2da75bbc5b7e6e3b3c99dbafc51 (diff)
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,
data->rotation);
struct wlr_box box = {
- .x = data->ox + _sx,
- .y = data->oy + _sy,
+ .x = floor(data->ox + _sx),
+ .y = floor(data->oy + _sy),
.width = sw,
.height = sh,
};