1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-14 15:17:27 +08:00

Don't dismiss on hover, and allow dismissing via click

This commit is contained in:
Dean Herbert 2023-12-28 17:18:47 +09:00
parent 1f2339244e
commit 7dc50b9baf
No known key found for this signature in database

View File

@ -8,6 +8,8 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Input.Events;
using osu.Framework.Threading;
using osu.Game.Graphics;
using osu.Game.Graphics.Containers;
using osu.Game.Online.API;
@ -113,8 +115,47 @@ namespace osu.Game.Screens.Menu
.Delay(1000)
.FadeInFromZero(800, Easing.OutQuint);
Scheduler.AddDelayed(() =>
scheduleDismissal();
}
protected override bool OnClick(ClickEvent e)
{
dismissalDelegate?.Cancel();
supportFlow.BypassAutoSizeAxes = Axes.X;
this.FadeOut(500, Easing.OutQuint);
return base.OnClick(e);
}
protected override bool OnHover(HoverEvent e)
{
backgroundBox.FadeTo(0.6f, 500, Easing.OutQuint);
return base.OnHover(e);
}
protected override void OnHoverLost(HoverLostEvent e)
{
backgroundBox.FadeTo(0.4f, 500, Easing.OutQuint);
base.OnHoverLost(e);
}
private ScheduledDelegate? dismissalDelegate;
private void scheduleDismissal()
{
dismissalDelegate?.Cancel();
dismissalDelegate = Scheduler.AddDelayed(() =>
{
// If the user is hovering they may want to interact with the link.
// Give them more time.
if (IsHovered)
{
scheduleDismissal();
return;
}
dismissalDelegate?.Cancel();
AutoSizeEasing = Easing.In;
supportFlow.BypassAutoSizeAxes = Axes.X;
this