mirror of
https://github.com/ppy/osu.git
synced 2024-12-13 08:32:57 +08:00
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:
commit
bef0cbf178
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user