diff --git a/scene/gui/range.cpp b/scene/gui/range.cpp index 09d8664240d1..8fe33a00fbd1 100644 --- a/scene/gui/range.cpp +++ b/scene/gui/range.cpp @@ -66,10 +66,11 @@ void Range::Shared::emit_changed(const char *p_what) { } void Range::set_value(double p_val) { + if (shared->step > 0) + p_val = Math::round(p_val / shared->step) * shared->step; - if (_rounded_values) { + if (_rounded_values) p_val = Math::round(p_val); - } if (!shared->allow_greater && p_val > shared->max - shared->page) p_val = shared->max - shared->page;