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

Move workaround to subscreen

This commit is contained in:
Bartłomiej Dach 2024-05-24 10:24:50 +02:00
parent a80dbba9d0
commit 807d982a72
No known key found for this signature in database
3 changed files with 18 additions and 5 deletions

View File

@ -719,11 +719,7 @@ namespace osu.Game.Screens.Edit
public override bool OnExiting(ScreenExitEvent e) public override bool OnExiting(ScreenExitEvent e)
{ {
// Before exiting, trigger a focus loss. currentScreen?.OnExiting(e);
//
// This is important to ensure that if the user is still editing a textbox, it will commit
// (and potentially block the exit procedure for save).
GetContainingFocusManager().TriggerFocusContention(this);
if (!ExitConfirmed) if (!ExitConfirmed)
{ {

View File

@ -6,6 +6,7 @@ using osu.Framework.Bindables;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Cursor; using osu.Framework.Graphics.Cursor;
using osu.Framework.Screens;
namespace osu.Game.Screens.Edit namespace osu.Game.Screens.Edit
{ {
@ -37,6 +38,10 @@ namespace osu.Game.Screens.Edit
protected override void PopOut() => this.FadeOut(); protected override void PopOut() => this.FadeOut();
public virtual void OnExiting(ScreenExitEvent e)
{
}
#region Clipboard operations #region Clipboard operations
public BindableBool CanCut { get; } = new BindableBool(); public BindableBool CanCut { get; } = new BindableBool();

View File

@ -5,6 +5,7 @@ using System.Collections.Generic;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Screens;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
using osu.Game.Overlays; using osu.Game.Overlays;
@ -55,6 +56,17 @@ namespace osu.Game.Screens.Edit.Setup
})); }));
} }
public override void OnExiting(ScreenExitEvent e)
{
base.OnExiting(e);
// Before exiting, trigger a focus loss.
//
// This is important to ensure that if the user is still editing a textbox, it will commit
// (and potentially block the exit procedure for save).
GetContainingFocusManager().TriggerFocusContention(this);
}
private partial class SetupScreenSectionsContainer : SectionsContainer<SetupSection> private partial class SetupScreenSectionsContainer : SectionsContainer<SetupSection>
{ {
protected override UserTrackingScrollContainer CreateScrollContainer() protected override UserTrackingScrollContainer CreateScrollContainer()