From b8068438fb747135f094407d5938c1dddb037049 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sat, 19 Mar 2016 00:09:06 +0100 Subject: [PATCH] [Horus] Sliders will stop always moving when around 0, just because of a bad rounding when negative --- radio/src/gui/horus/widgets.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/radio/src/gui/horus/widgets.cpp b/radio/src/gui/horus/widgets.cpp index c6feb3b11..255f2c183 100644 --- a/radio/src/gui/horus/widgets.cpp +++ b/radio/src/gui/horus/widgets.cpp @@ -257,7 +257,7 @@ void drawVerticalSlider(coord_t x, coord_t y, int len, int val, int min, int max } } */ } - y += len - (val - min) * len / (max - min) - 5; + y += len - divRoundClosest(len * (val - min), max - min) - 5; if (options & OPTION_SLIDER_TRIM_BUTTON) { drawVerticalTrimPosition(x, y - 2, val); } @@ -272,7 +272,7 @@ void drawVerticalSlider(coord_t x, coord_t y, int len, int val, int min, int max void drawHorizontalSlider(coord_t x, coord_t y, int len, int val, int min, int max, uint8_t steps, uint32_t options) { - int w = (val - min) * len / (max - min); + int w = divRoundClosest(len * (val - min), max - min); if (options & OPTION_SLIDER_TICKS) { if (steps) { int delta = len / steps;