From 915ba01ff1388028a85156feb08e9296c356a696 Mon Sep 17 00:00:00 2001 From: Ronan Pigott Date: Fri, 15 Jan 2021 13:44:22 -0700 Subject: [PATCH] config/output: correct refresh rate rounding error --- sway/config/output.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sway/config/output.c b/sway/config/output.c index b59cabd4..c9ec6745 100644 --- a/sway/config/output.c +++ b/sway/config/output.c @@ -237,7 +237,10 @@ struct output_config *store_output_config(struct output_config *oc) { static void set_mode(struct wlr_output *output, int width, int height, float refresh_rate, bool custom) { - int mhz = (int)(refresh_rate * 1000); + // Not all floating point integers can be represented exactly + // as (int)(1000 * mHz / 1000.f) + // round() the result to avoid any error + int mhz = (int)round(refresh_rate * 1000); if (wl_list_empty(&output->modes) || custom) { sway_log(SWAY_DEBUG, "Assigning custom mode to %s", output->name);