diff --git a/common/model-views.cpp b/common/model-views.cpp index 9c0ca4acf6..55c6718856 100644 --- a/common/model-views.cpp +++ b/common/model-views.cpp @@ -560,19 +560,17 @@ namespace rs2 } else { - auto step = fmod(range.step, 1); - int pow_val = 10; - while ((step *= 10.f) < 0.f) - { - pow_val *= 10; - } - if (ImGui::SliderFloat(id.c_str(), &value, range.min, range.max, "%.4f")) { + auto loffset = std::abs(fmod(value, range.step)); + auto roffset = range.step - loffset; + if (value >= 0) + value = (loffset < roffset) ? value - loffset : value + roffset; + else + value = (loffset < roffset) ? value + loffset : value - roffset; value = (value < range.min) ? range.min : value; value = (value > range.max) ? range.max : value; - value = (int)(value * pow_val) / (float)(pow_val); model.add_log(to_string() << "Setting " << opt << " to " << value); endpoint->set_option(opt, value); *invalidate_flag = true;