mirror of
https://github.com/ppy/osu.git
synced 2025-03-28 09:37:23 +08:00
Refactor to just exit sub screens until lounge sub screen
Co-Authored-By: Salman Ahmed <frenzibyte@gmail.com>
This commit is contained in:
parent
5232588a1f
commit
0dba25e0ab
@ -45,9 +45,6 @@ namespace osu.Game.Screens.OnlinePlay
|
|||||||
[Resolved]
|
[Resolved]
|
||||||
protected IAPIProvider API { get; private set; }
|
protected IAPIProvider API { get; private set; }
|
||||||
|
|
||||||
[Resolved(canBeNull: true)]
|
|
||||||
private IPerformFromScreenRunner performer { get; set; }
|
|
||||||
|
|
||||||
protected OnlinePlayScreen()
|
protected OnlinePlayScreen()
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre;
|
Anchor = Anchor.Centre;
|
||||||
@ -151,17 +148,13 @@ namespace osu.Game.Screens.OnlinePlay
|
|||||||
|
|
||||||
public override bool OnExiting(ScreenExitEvent e)
|
public override bool OnExiting(ScreenExitEvent e)
|
||||||
{
|
{
|
||||||
if (screenStack.CurrentScreen is not LoungeSubScreen)
|
while (screenStack.CurrentScreen != null && screenStack.CurrentScreen is not LoungeSubScreen)
|
||||||
{
|
{
|
||||||
if (performer != null)
|
var subScreen = (Screen)screenStack.CurrentScreen;
|
||||||
{
|
if (subScreen.IsLoaded && subScreen.OnExiting(e))
|
||||||
performer.PerformFromScreen(_ => e.Destination.MakeCurrent(), new[] { typeof(LoungeSubScreen) });
|
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: make isolated tests work with IPerformFromScreenRunner
|
subScreen.Exit();
|
||||||
if ((screenStack.CurrentScreen as Drawable)?.IsLoaded == true && screenStack.CurrentScreen.OnExiting(e))
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RoomManager.PartRoom();
|
RoomManager.PartRoom();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user