Fix crosstalk between notification/setting overlay nudge padding and skin overlay position adjust

This commit is contained in:
Dean Herbert 2021-04-30 13:03:54 +09:00
parent 8b82a07914
commit 20ff05c9ff

View File

@ -595,28 +595,35 @@ namespace osu.Game
ActionRequested = action => volume.Adjust(action), ActionRequested = action => volume.Adjust(action),
ScrollActionRequested = (action, amount, isPrecise) => volume.Adjust(action, amount, isPrecise), ScrollActionRequested = (action, amount, isPrecise) => volume.Adjust(action, amount, isPrecise),
}, },
screenContainer = new ScalingContainer(ScalingMode.ExcludeOverlays) screenOffsetContainer = new Container
{ {
RelativeSizeAxes = Axes.Both, RelativeSizeAxes = Axes.Both,
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
Children = new Drawable[] Children = new Drawable[]
{ {
receptor = new BackButton.Receptor(), screenContainer = new ScalingContainer(ScalingMode.ExcludeOverlays)
ScreenStack = new OsuScreenStack { RelativeSizeAxes = Axes.Both },
BackButton = new BackButton(receptor)
{ {
Anchor = Anchor.BottomLeft, RelativeSizeAxes = Axes.Both,
Origin = Anchor.BottomLeft, Anchor = Anchor.Centre,
Action = () => Origin = Anchor.Centre,
Children = new Drawable[]
{ {
var currentScreen = ScreenStack.CurrentScreen as IOsuScreen; receptor = new BackButton.Receptor(),
ScreenStack = new OsuScreenStack { RelativeSizeAxes = Axes.Both },
BackButton = new BackButton(receptor)
{
Anchor = Anchor.BottomLeft,
Origin = Anchor.BottomLeft,
Action = () =>
{
var currentScreen = ScreenStack.CurrentScreen as IOsuScreen;
if (currentScreen?.AllowBackButton == true && !currentScreen.OnBackButton()) if (currentScreen?.AllowBackButton == true && !currentScreen.OnBackButton())
ScreenStack.Exit(); ScreenStack.Exit();
}
},
logoContainer = new Container { RelativeSizeAxes = Axes.Both },
} }
}, },
logoContainer = new Container { RelativeSizeAxes = Axes.Both },
} }
}, },
overlayContent = new Container { RelativeSizeAxes = Axes.Both }, overlayContent = new Container { RelativeSizeAxes = Axes.Both },
@ -766,7 +773,7 @@ namespace osu.Game
if (notifications.State.Value == Visibility.Visible) if (notifications.State.Value == Visibility.Visible)
offset -= Toolbar.HEIGHT / 2; offset -= Toolbar.HEIGHT / 2;
screenContainer.MoveToX(offset, SettingsPanel.TRANSITION_LENGTH, Easing.OutQuint); screenOffsetContainer.MoveToX(offset, SettingsPanel.TRANSITION_LENGTH, Easing.OutQuint);
} }
Settings.State.ValueChanged += _ => updateScreenOffset(); Settings.State.ValueChanged += _ => updateScreenOffset();
@ -946,6 +953,8 @@ namespace osu.Game
private ScalingContainer screenContainer; private ScalingContainer screenContainer;
private Container screenOffsetContainer;
private SkinEditorContainer skinEditor; private SkinEditorContainer skinEditor;
protected override bool OnExiting() protected override bool OnExiting()
@ -966,7 +975,7 @@ namespace osu.Game
{ {
base.UpdateAfterChildren(); base.UpdateAfterChildren();
screenContainer.Padding = new MarginPadding { Top = ToolbarOffset }; screenOffsetContainer.Padding = new MarginPadding { Top = ToolbarOffset };
overlayContent.Padding = new MarginPadding { Top = ToolbarOffset }; overlayContent.Padding = new MarginPadding { Top = ToolbarOffset };
MenuCursorContainer.CanShowCursor = (ScreenStack.CurrentScreen as IOsuScreen)?.CursorVisible ?? false; MenuCursorContainer.CanShowCursor = (ScreenStack.CurrentScreen as IOsuScreen)?.CursorVisible ?? false;