diff options
author | Simon Ser <contact@emersion.fr> | 2023-02-20 18:56:43 +0100 |
---|---|---|
committer | Simon Zeni <simon@bl4ckb0ne.ca> | 2023-02-22 10:14:31 -0500 |
commit | 423459723bc488b69aa6fafcc9aa4e13fdf92717 (patch) | |
tree | 5df50f9f14a7f9f0238f5eef6f9043a4717b2bee | |
parent | 4666d1785bfb6635e6e8604de383c91714bceebc (diff) |
Adjust scale for fractional-scale-v1
-rw-r--r-- | sway/config/output.c | 10 |
1 files changed, 10 insertions, 0 deletions
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); |