From 3049d159d8bca2340ca89853ced370abf3919678 Mon Sep 17 00:00:00 2001 From: Dao Heng Liu Date: Sun, 23 Jul 2023 10:39:47 +0100 Subject: [PATCH] avoid potentially cancelling `contract` when switching away from GameplayScreen --- .../Screens/Gameplay/GameplayScreen.cs | 48 +++++++++++-------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/osu.Game.Tournament/Screens/Gameplay/GameplayScreen.cs b/osu.Game.Tournament/Screens/Gameplay/GameplayScreen.cs index a921a29abd..7a54c6fe90 100644 --- a/osu.Game.Tournament/Screens/Gameplay/GameplayScreen.cs +++ b/osu.Game.Tournament/Screens/Gameplay/GameplayScreen.cs @@ -3,6 +3,7 @@ #nullable disable +using System.Diagnostics.Contracts; using osu.Framework.Allocation; using osu.Framework.Bindables; using osu.Framework.Graphics; @@ -159,6 +160,25 @@ namespace osu.Game.Tournament.Screens.Gameplay private TourneyState lastState; private MatchHeader header; + private void contract() + { + SongBar.Expanded = false; + scoreDisplay.FadeOut(100); + using (chat?.BeginDelayedSequence(500)) + chat?.Expand(); + } + + private void expand() + { + chat?.Contract(); + + using (BeginDelayedSequence(300)) + { + scoreDisplay.FadeIn(100); + SongBar.Expanded = true; + } + } + private void stateChanged(ValueChangedEvent state) { try @@ -175,25 +195,6 @@ namespace osu.Game.Tournament.Screens.Gameplay scheduledOperation?.Cancel(); - void expand() - { - chat?.Contract(); - - using (BeginDelayedSequence(300)) - { - scoreDisplay.FadeIn(100); - SongBar.Expanded = true; - } - } - - void contract() - { - SongBar.Expanded = false; - scoreDisplay.FadeOut(100); - using (chat?.BeginDelayedSequence(500)) - chat?.Expand(); - } - switch (state.NewValue) { case TourneyState.Idle: @@ -234,7 +235,14 @@ namespace osu.Game.Tournament.Screens.Gameplay public override void Hide() { - scheduledOperation?.Cancel(); + if (scheduledOperation != null) + { + scheduledOperation.Cancel(); + + if (State.Value == TourneyState.Ranking) + contract(); + } + base.Hide(); }