1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 10:52:53 +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. // 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. // See the LICENCE file in the repository root for full licence text.
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using osu.Framework.Bindables; using osu.Framework.Bindables;
@ -107,6 +108,9 @@ namespace osu.Game.Screens.Ranking
// Find the panel corresponding to the new score. // Find the panel corresponding to the new score.
expandedPanel = flow.SingleOrDefault(p => p.Score == score.NewValue); 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) if (expandedPanel == null)
return; return;
@ -166,6 +170,11 @@ namespace osu.Game.Screens.Ranking
/// </summary> /// </summary>
public float? InstantScrollTarget; public float? InstantScrollTarget;
/// <summary>
/// Whether this container should handle scroll trigger events.
/// </summary>
public Func<bool> HandleScroll;
protected override void UpdateAfterChildren() protected override void UpdateAfterChildren()
{ {
if (InstantScrollTarget != null) if (InstantScrollTarget != null)
@ -177,9 +186,9 @@ namespace osu.Game.Screens.Ranking
base.UpdateAfterChildren(); base.UpdateAfterChildren();
} }
public override bool HandlePositionalInput => false; public override bool HandlePositionalInput => HandleScroll();
public override bool HandleNonPositionalInput => false; public override bool HandleNonPositionalInput => HandleScroll();
} }
} }
} }