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