1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 05:32:54 +08:00

Merge pull request #9161 from peppy/results-screen-horizontal-scroll

Allow horizontal scroll on results screen when not hovering expanded panel
This commit is contained in:
Dan Balasescu 2020-06-01 18:00:51 +09:00 committed by GitHub
commit efbc02b521
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,6 +1,7 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using System;
using System.Collections.Generic;
using System.Linq;
using osu.Framework.Bindables;
@ -107,6 +108,9 @@ namespace osu.Game.Screens.Ranking
// Find the panel corresponding to the new score.
expandedPanel = flow.SingleOrDefault(p => p.Score == score.NewValue);
// handle horizontal scroll only when not hovering the expanded panel.
scroll.HandleScroll = () => expandedPanel?.IsHovered != true;
if (expandedPanel == null)
return;
@ -166,6 +170,11 @@ namespace osu.Game.Screens.Ranking
/// </summary>
public float? InstantScrollTarget;
/// <summary>
/// Whether this container should handle scroll trigger events.
/// </summary>
public Func<bool> HandleScroll;
protected override void UpdateAfterChildren()
{
if (InstantScrollTarget != null)
@ -177,9 +186,9 @@ namespace osu.Game.Screens.Ranking
base.UpdateAfterChildren();
}
public override bool HandlePositionalInput => false;
public override bool HandlePositionalInput => HandleScroll();
public override bool HandleNonPositionalInput => false;
public override bool HandleNonPositionalInput => HandleScroll();
}
}
}