diff --git a/osu.Game.Rulesets.Osu/Edit/OsuSelectionHandler.cs b/osu.Game.Rulesets.Osu/Edit/OsuSelectionHandler.cs index 4da640a971..4765f615ce 100644 --- a/osu.Game.Rulesets.Osu/Edit/OsuSelectionHandler.cs +++ b/osu.Game.Rulesets.Osu/Edit/OsuSelectionHandler.cs @@ -42,7 +42,7 @@ protected override void OnSelectionChanged() SelectionBox.CanFlipX = SelectionBox.CanScaleX = quad.Width > 0; SelectionBox.CanFlipY = SelectionBox.CanScaleY = quad.Height > 0; - SelectionBox.CanScaleProportionally = SelectionBox.CanScaleX && SelectionBox.CanScaleY; + SelectionBox.CanScaleDiagonally = SelectionBox.CanScaleX && SelectionBox.CanScaleY; SelectionBox.CanReverse = EditorBeatmap.SelectedHitObjects.Count > 1 || EditorBeatmap.SelectedHitObjects.Any(s => s is Slider); } diff --git a/osu.Game.Tests/Visual/Editing/TestSceneComposeSelectBox.cs b/osu.Game.Tests/Visual/Editing/TestSceneComposeSelectBox.cs index 9e8d75efea..f6637d0e80 100644 --- a/osu.Game.Tests/Visual/Editing/TestSceneComposeSelectBox.cs +++ b/osu.Game.Tests/Visual/Editing/TestSceneComposeSelectBox.cs @@ -47,7 +47,7 @@ public void SetUp() => Schedule(() => CanScaleX = true, CanScaleY = true, - CanScaleProportionally = true, + CanScaleDiagonally = true, CanFlipX = true, CanFlipY = true, diff --git a/osu.Game/Overlays/SkinEditor/SkinSelectionHandler.cs b/osu.Game/Overlays/SkinEditor/SkinSelectionHandler.cs index a4d530a4d9..52c012a15a 100644 --- a/osu.Game/Overlays/SkinEditor/SkinSelectionHandler.cs +++ b/osu.Game/Overlays/SkinEditor/SkinSelectionHandler.cs @@ -221,7 +221,7 @@ protected override void OnSelectionChanged() SelectionBox.CanScaleX = allSelectedSupportManualSizing(Axes.X); SelectionBox.CanScaleY = allSelectedSupportManualSizing(Axes.Y); - SelectionBox.CanScaleProportionally = true; + SelectionBox.CanScaleDiagonally = true; SelectionBox.CanFlipX = true; SelectionBox.CanFlipY = true; SelectionBox.CanReverse = false; diff --git a/osu.Game/Screens/Edit/Compose/Components/SelectionBox.cs b/osu.Game/Screens/Edit/Compose/Components/SelectionBox.cs index 0917867a61..0b16941bc4 100644 --- a/osu.Game/Screens/Edit/Compose/Components/SelectionBox.cs +++ b/osu.Game/Screens/Edit/Compose/Components/SelectionBox.cs @@ -60,7 +60,7 @@ public bool CanReverse private bool canScaleX; /// - /// Whether horizontal scaling support should be enabled. + /// Whether horizontal scaling (from the left or right edge) support should be enabled. /// public bool CanScaleX { @@ -77,7 +77,7 @@ public bool CanScaleX private bool canScaleY; /// - /// Whether vertical scaling support should be enabled. + /// Whether vertical scaling (from the top or bottom edge) support should be enabled. /// public bool CanScaleY { @@ -91,19 +91,23 @@ public bool CanScaleY } } - private bool canScaleProportionally; + private bool canScaleDiagonally; /// - /// Whether vertical scaling support should be enabled. + /// Whether diagonal scaling (from a corner) support should be enabled. /// - public bool CanScaleProportionally + /// + /// There are some cases where we only want to allow proportional resizing, and not allow + /// one or both explicit directions of scale. + /// + public bool CanScaleDiagonally { - get => canScaleProportionally; + get => canScaleDiagonally; set { - if (canScaleProportionally == value) return; + if (canScaleDiagonally == value) return; - canScaleProportionally = value; + canScaleDiagonally = value; recreate(); } } @@ -262,7 +266,7 @@ private void recreate() }; if (CanScaleX) addXScaleComponents(); - if (CanScaleProportionally) addFullScaleComponents(); + if (CanScaleDiagonally) addFullScaleComponents(); if (CanScaleY) addYScaleComponents(); if (CanFlipX) addXFlipComponents(); if (CanFlipY) addYFlipComponents(); diff --git a/osu.sln.DotSettings b/osu.sln.DotSettings index c2778ca5b1..342bc8aa79 100644 --- a/osu.sln.DotSettings +++ b/osu.sln.DotSettings @@ -823,6 +823,7 @@ See the LICENCE file in the repository root for full licence text. True True True + True True True True