From 423459723bc488b69aa6fafcc9aa4e13fdf92717 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Mon, 20 Feb 2023 18:56:43 +0100 Subject: [PATCH] Adjust scale for fractional-scale-v1 --- sway/config/output.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sway/config/output.c b/sway/config/output.c index e2e48e4c..3b524433 100644 --- a/sway/config/output.c +++ b/sway/config/output.c @@ -460,6 +460,16 @@ static void queue_output_config(struct output_config *oc, float scale; if (oc && oc->scale > 0) { scale = oc->scale; + + // The factional-scale-v1 protocol uses increments of 120ths to send + // the scale factor to the client. Adjust the scale so that we use the + // same value as the clients'. + float adjusted_scale = round(scale * 120) / 120; + if (scale != adjusted_scale) { + sway_log(SWAY_INFO, "Adjusting output scale from %f to %f", + scale, adjusted_scale); + scale = adjusted_scale; + } } else { scale = compute_default_scale(wlr_output, pending); sway_log(SWAY_DEBUG, "Auto-detected output scale: %f", scale);