1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-24 02:49:54 +08:00

Fix right click scroll at song select not quite matching scrollbar position

Closes https://github.com/ppy/osu/issues/30744.
This commit is contained in:
Dean Herbert
2024-11-18 23:33:48 +09:00
Unverified
parent 28fb0bf909
commit a2af4cbb50
2 changed files with 10 additions and 6 deletions
@@ -42,8 +42,6 @@ namespace osu.Game.Graphics.Containers
/// </summary>
public double DistanceDecayOnRightMouseScrollbar = 0.02;
private bool shouldPerformRightMouseScroll(MouseButtonEvent e) => RightMouseScrollbar && e.Button == MouseButton.Right;
private bool rightMouseDragging;
protected override bool IsDragging => base.IsDragging || rightMouseDragging;
@@ -126,8 +124,15 @@ namespace osu.Game.Graphics.Containers
return base.OnScroll(e);
}
protected virtual void ScrollFromMouseEvent(MouseEvent e) =>
ScrollTo(Clamp(ToLocalSpace(e.ScreenSpaceMousePosition)[ScrollDim] / DrawSize[ScrollDim] * Content.DrawSize[ScrollDim]), true, DistanceDecayOnRightMouseScrollbar);
protected virtual void ScrollFromMouseEvent(MouseEvent e)
{
float fromScrollbarPosition = FromScrollbarPosition(ToLocalSpace(e.ScreenSpaceMousePosition)[ScrollDim]);
float scrollbarCentreOffset = FromScrollbarPosition(Scrollbar.DrawHeight) * 0.5f;
ScrollTo(Clamp(fromScrollbarPosition - scrollbarCentreOffset), true, DistanceDecayOnRightMouseScrollbar);
}
private bool shouldPerformRightMouseScroll(MouseButtonEvent e) => RightMouseScrollbar && e.Button == MouseButton.Right;
protected override ScrollbarContainer CreateScrollbar(Direction direction) => new OsuScrollbar(direction);