1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-27 11:12:59 +08:00

Merge pull request #28118 from bdach/scaling-mode-does-not-affect-skin-editor

Fix sizing of gameplay preview in skin editor not updating on scaling mode change
This commit is contained in:
Dean Herbert 2024-05-06 18:46:48 +08:00 committed by GitHub
commit 29eef26a69
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -13,6 +13,7 @@ using osu.Framework.Graphics.Primitives;
using osu.Framework.Input; using osu.Framework.Input;
using osu.Framework.Input.Bindings; using osu.Framework.Input.Bindings;
using osu.Framework.Input.Events; using osu.Framework.Input.Events;
using osu.Framework.Layout;
using osu.Framework.Screens; using osu.Framework.Screens;
using osu.Framework.Testing; using osu.Framework.Testing;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
@ -30,7 +31,6 @@ using osu.Game.Screens.Play;
using osu.Game.Screens.Select; using osu.Game.Screens.Select;
using osu.Game.Users; using osu.Game.Users;
using osu.Game.Utils; using osu.Game.Utils;
using osuTK;
namespace osu.Game.Overlays.SkinEditor namespace osu.Game.Overlays.SkinEditor
{ {
@ -70,12 +70,14 @@ namespace osu.Game.Overlays.SkinEditor
private OsuScreen? lastTargetScreen; private OsuScreen? lastTargetScreen;
private InvokeOnDisposal? nestedInputManagerDisable; private InvokeOnDisposal? nestedInputManagerDisable;
private Vector2 lastDrawSize; private readonly LayoutValue drawSizeLayout;
public SkinEditorOverlay(ScalingContainer scalingContainer) public SkinEditorOverlay(ScalingContainer scalingContainer)
{ {
this.scalingContainer = scalingContainer; this.scalingContainer = scalingContainer;
RelativeSizeAxes = Axes.Both; RelativeSizeAxes = Axes.Both;
AddLayout(drawSizeLayout = new LayoutValue(Invalidation.DrawSize));
} }
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
@ -199,10 +201,10 @@ namespace osu.Game.Overlays.SkinEditor
{ {
base.Update(); base.Update();
if (game.DrawSize != lastDrawSize) if (!drawSizeLayout.IsValid)
{ {
lastDrawSize = game.DrawSize;
updateScreenSizing(); updateScreenSizing();
drawSizeLayout.Validate();
} }
} }