Merge pull request #18335 from peppy/better-first-run-toolbar-handling

Fix toolbar potentially being in incorrect state after exiting the first run setup
This commit is contained in:
Dan Balasescu 2022-05-19 17:20:47 +09:00 committed by GitHub
commit bef0cbf178
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 19 deletions

View File

@ -62,8 +62,6 @@ namespace osu.Game.Overlays
private Container screenContent = null!;
private Bindable<OverlayActivation>? overlayActivationMode;
private Container content = null!;
private LoadingSpinner loading = null!;
@ -225,16 +223,9 @@ namespace osu.Game.Overlays
// 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 @@ namespace osu.Game.Overlays
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 @@ namespace osu.Game.Screens.Menu
[Resolved(canBeNull: true)]
private IPerformFromScreenRunner performer { get; set; }
public void ReturnToOsuLogo() => Buttons.State = ButtonSystemState.Initial;
private void confirmAndExit()
{
if (exitConfirmed) return;