mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-06 16:45:03 +00:00
LibGUI: Ignore scroll length multiplier in SpinBoxes & Sliders
Prevents discrete values from being skipped when using the mouse wheel on SpinBoxes and proportional Sliders. Wheel delta can be accelerated by holding Ctrl.
This commit is contained in:
committed by
Andreas Kling
parent
f318ab6bed
commit
bd34cdbbb3
@@ -144,14 +144,17 @@ void Slider::mouseup_event(MouseEvent& event)
|
||||
void Slider::mousewheel_event(MouseEvent& event)
|
||||
{
|
||||
auto acceleration_modifier = step();
|
||||
auto wheel_delta = event.wheel_delta();
|
||||
|
||||
if (event.modifiers() == KeyModifier::Mod_Ctrl && knob_size_mode() == KnobSizeMode::Fixed)
|
||||
if (event.modifiers() == KeyModifier::Mod_Ctrl)
|
||||
acceleration_modifier *= 6;
|
||||
if (knob_size_mode() == KnobSizeMode::Proportional)
|
||||
wheel_delta /= abs(wheel_delta);
|
||||
|
||||
if (orientation() == Orientation::Horizontal)
|
||||
set_value(value() - event.wheel_delta() * acceleration_modifier);
|
||||
set_value(value() - wheel_delta * acceleration_modifier);
|
||||
else
|
||||
set_value(value() + event.wheel_delta() * acceleration_modifier);
|
||||
set_value(value() + wheel_delta * acceleration_modifier);
|
||||
|
||||
Widget::mousewheel_event(event);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user