mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 04:17:35 +00:00
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.
This commit is contained in:
parent
6a3e217c5c
commit
c8547124e2
1 changed files with 1 additions and 1 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue