diff --git a/src/display-output.hh b/src/display-output.hh index fa5efa240..52377c33f 100644 --- a/src/display-output.hh +++ b/src/display-output.hh @@ -184,21 +184,13 @@ static inline conky::display_output_base *display_output() { } template -inline std::enable_if_t::value, T> dpi_scale(T value) { +inline T dpi_scale(T value) { + static_assert(std::is_arithmetic_v, + "dpi_scale value type must be a number"); #ifdef BUILD_GUI auto output = display_output(); if (output) { - if constexpr (std::is_integral_v) { - if (value > 0) { - return static_cast( - std::ceil(static_cast(value) * output->get_dpi_scale())); - } else { - return static_cast( - std::floor(static_cast(value) * output->get_dpi_scale())); - } - } else { - return value * output->get_dpi_scale(); - } + return T(std::round(static_cast(value) * output->get_dpi_scale())); } #endif /* BUILD_GUI */