diff --git a/osu.Game/Screens/Multi/Lounge/LoungeSubScreen.cs b/osu.Game/Screens/Multi/Lounge/LoungeSubScreen.cs index c49cfc6b9c..7ec04087de 100644 --- a/osu.Game/Screens/Multi/Lounge/LoungeSubScreen.cs +++ b/osu.Game/Screens/Multi/Lounge/LoungeSubScreen.cs @@ -106,20 +106,11 @@ namespace osu.Game.Screens.Multi.Lounge protected override bool OnExiting(Screen next) { - roomManager?.PartRoom(); - Filter.Search.HoldFocus = false; // no base call; don't animate return false; } - protected override void OnResuming(Screen last) - { - roomManager?.PartRoom(); - - base.OnResuming(last); - } - protected override void OnSuspending(Screen next) { base.OnSuspending(next); diff --git a/osu.Game/Screens/Multi/RoomManager.cs b/osu.Game/Screens/Multi/RoomManager.cs index 68a11c0ba8..0af96c2e1b 100644 --- a/osu.Game/Screens/Multi/RoomManager.cs +++ b/osu.Game/Screens/Multi/RoomManager.cs @@ -42,6 +42,12 @@ namespace osu.Game.Screens.Multi TimeBetweenPolls = 5000; } + protected override void Dispose(bool isDisposing) + { + base.Dispose(isDisposing); + PartRoom(); + } + public void CreateRoom(Room room) { room.Host.Value = api.LocalUser;