From c8547124e2ee4c2efb7421675ff38e209630044e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Oppeb=C3=B8en?= Date: Tue, 28 Feb 2023 23:43:46 +0100 Subject: LibGUI: Fix slider so dragging handle left and right feels similar When dragging the slider handle left/down, the handle would snap to lower value with the slightest move of the mouse. When dragging to the right/up however, it would take a lot more movement to cause a change in value. This asymmetry made it feel really awkward to drag the slider. It was caused by always rounding down using a cast to int. By rounding to the nearest integer first, we ensure symmetric behavior. --- Userland/Libraries/LibGUI/Slider.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Userland/Libraries/LibGUI') diff --git a/Userland/Libraries/LibGUI/Slider.cpp b/Userland/Libraries/LibGUI/Slider.cpp index 350225cfa8..45e165d899 100644 --- a/Userland/Libraries/LibGUI/Slider.cpp +++ b/Userland/Libraries/LibGUI/Slider.cpp @@ -133,7 +133,7 @@ void Slider::mousemove_event(MouseEvent& event) float scrubbable_range = inner_rect().primary_size_for_orientation(orientation()); float value_steps_per_scrubbed_pixel = (max() - min()) / scrubbable_range; float new_value = m_drag_origin_value + (value_steps_per_scrubbed_pixel * delta); - set_value((int)new_value); + set_value((int)roundf(new_value)); return; } return Widget::mousemove_event(event); -- cgit v1.2.3