Simplify toolbar hiding logic in `FirstRunSetupOverlay`

Rather than fiddling around with the activation modes, this seems like a
much cleaner way to make things work.

Closes https://github.com/ppy/osu/issues/18277.
This commit is contained in:
Dean Herbert 2022-05-19 16:42:43 +09:00
parent 16075d2a2f
commit 363e7a6f53
2 changed files with 5 additions and 19 deletions

View File

@ -62,8 +62,6 @@ public class FirstRunSetupOverlay : ShearedOverlayContainer
private Container screenContent = null!;
private Bindable<OverlayActivation>? overlayActivationMode;
private Container content = null!;
private LoadingSpinner loading = null!;
@ -225,16 +223,9 @@ public override void Show()
// if we are valid for display, only do so after reaching the main menu.
performer.PerformFromScreen(screen =>
{
MainMenu menu = (MainMenu)screen;
// Eventually I'd like to replace this with a better method that doesn't access the screen.
// Either this dialog would be converted to its own screen, or at very least be "hosted" by a screen pushed to the main menu.
// Alternatively, another method of disabling notifications could be added to `INotificationOverlay`.
if (menu != null)
{
overlayActivationMode = menu.OverlayActivationMode.GetBoundCopy();
overlayActivationMode.Value = OverlayActivation.UserTriggered;
}
// Hides the toolbar for us.
if (screen is MainMenu menu)
menu.ReturnToOsuLogo();
base.Show();
}, new[] { typeof(MainMenu) });
@ -257,13 +248,6 @@ protected override void PopOut()
content.ScaleTo(0.99f, 400, Easing.OutQuint);
if (overlayActivationMode != null)
{
// If this is non-null we are guaranteed to have come from the main menu.
overlayActivationMode.Value = OverlayActivation.All;
overlayActivationMode = null;
}
if (currentStepIndex != null)
{
notificationOverlay.Post(new SimpleNotification

View File

@ -150,6 +150,8 @@ private void load(BeatmapListingOverlay beatmapListing, SettingsOverlay settings
[Resolved(canBeNull: true)]
private IPerformFromScreenRunner performer { get; set; }
public void ReturnToOsuLogo() => Buttons.State = ButtonSystemState.Initial;
private void confirmAndExit()
{
if (exitConfirmed) return;