1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 14:25:05 +08:00

Fix back button not working correctly with multi song select's mod select

This commit is contained in:
Joehu 2020-07-14 00:29:57 -07:00
parent 3573460d9c
commit 36041fc245
2 changed files with 11 additions and 3 deletions

View File

@ -20,9 +20,9 @@ using osu.Game.Online.Multiplayer;
using osu.Game.Screens.Menu;
using osu.Game.Screens.Multi.Components;
using osu.Game.Screens.Multi.Lounge;
using osu.Game.Screens.Multi.Lounge.Components;
using osu.Game.Screens.Multi.Match;
using osu.Game.Screens.Multi.Match.Components;
using osu.Game.Screens.Select;
using osuTK;
namespace osu.Game.Screens.Multi
@ -48,7 +48,7 @@ namespace osu.Game.Screens.Multi
private readonly Bindable<Room> selectedRoom = new Bindable<Room>();
[Cached]
private readonly Bindable<FilterCriteria> currentFilter = new Bindable<FilterCriteria>(new FilterCriteria());
private readonly Bindable<Lounge.Components.FilterCriteria> currentFilter = new Bindable<Lounge.Components.FilterCriteria>(new Lounge.Components.FilterCriteria());
[Cached(Type = typeof(IRoomManager))]
private RoomManager roomManager;
@ -265,6 +265,14 @@ namespace osu.Game.Screens.Multi
public override bool OnBackButton()
{
var songSelect = screenStack.CurrentScreen as MatchSongSelect;
if (songSelect?.ModSelect.State.Value == Visibility.Visible)
{
songSelect.ModSelect.Hide();
return true;
}
if (screenStack.CurrentScreen != null && !(screenStack.CurrentScreen is LoungeSubScreen))
{
screenStack.Exit();

View File

@ -86,7 +86,7 @@ namespace osu.Game.Screens.Select
[Resolved]
private BeatmapManager beatmaps { get; set; }
protected ModSelectOverlay ModSelect { get; private set; }
public ModSelectOverlay ModSelect { get; private set; }
protected SampleChannel SampleConfirm { get; private set; }