소스 검색

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.
Andreas Oppebøen 2 년 전
부모
커밋
c8547124e2
1개의 변경된 파일1개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      Userland/Libraries/LibGUI/Slider.cpp

+ 1 - 1
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);