diff --git a/ui/slider.go b/ui/slider.go index f180a68..68c9d33 100644 --- a/ui/slider.go +++ b/ui/slider.go @@ -119,6 +119,26 @@ func (s *Slider) Handle(ctx Context, e Event) bool { if s.ControlBase.Handle(ctx, e) { return true } + if !s.IsOver() { + return false + } + switch e := e.(type) { + case *MouseMoveEvent: + if e.MouseWheel != 0 { + var speed float32 = 1 + mods := ctx.KeyModifiers() + if mods&KeyModifierShift == KeyModifierShift { + speed = 10 + } else if mods&KeyModifierControl == KeyModifierControl { + speed = 0.1 + } + if e.MouseWheel > 0 { + s.setValue(s.Value + speed) + } else { + s.setValue(s.Value - speed) + } + } + } return false }