diff --git a/types/scene/wlr_scene.c b/types/scene/wlr_scene.c index e823d62ae..4c7f0fb4c 100644 --- a/types/scene/wlr_scene.c +++ b/types/scene/wlr_scene.c @@ -347,14 +347,14 @@ static void output_to_buffer_coords(pixman_region32_t *damage, struct wlr_output } static int scale_length(int length, int offset, float scale) { - return round((offset + length) * scale) - round(offset * scale); + return (int)((offset + length) * scale + .5f) - (int)(offset * scale + .5f); } static void scale_box(struct wlr_box *box, float scale) { box->width = scale_length(box->width, box->x, scale); box->height = scale_length(box->height, box->y, scale); - box->x = round(box->x * scale); - box->y = round(box->y * scale); + box->x = box->x * scale + .5f; + box->y = box->y * scale + .5f; } static void transform_output_box(struct wlr_box *box, const struct render_data *data) {