1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-23 02:39:52 +08:00

Fix "Deselect all" mods button becoming enabled when system mods are applied (#36913)

Closes https://github.com/ppy/osu/issues/36906.

---------

Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
This commit is contained in:
Dean Herbert
2026-03-10 20:40:54 +09:00
committed by GitHub
Unverified
parent 9105fc15b2
commit 14743a14eb
2 changed files with 30 additions and 1 deletions
@@ -698,6 +698,35 @@ namespace osu.Game.Tests.Visual.UserInterface
AddUntilStep("all mods deselected", () => !SelectedMods.Value.Any());
}
[Test]
public void TestTouchDeviceDoesNotInterfereWithDeselectAll()
{
createScreen();
changeRuleset(0);
AddAssert("deselect all button disabled", () => !this.ChildrenOfType<DeselectAllModsButton>().Single().Enabled.Value);
AddStep("select TD", () => SelectedMods.Value = new Mod[] { new OsuModTouchDevice() });
AddAssert("deselect all button still disabled", () => !this.ChildrenOfType<DeselectAllModsButton>().Single().Enabled.Value);
AddStep("click deselect all button", () =>
{
InputManager.MoveMouseTo(this.ChildrenOfType<DeselectAllModsButton>().Single());
InputManager.Click(MouseButton.Left);
});
AddUntilStep("touch mod still present", () => SelectedMods.Value, () => Is.EqualTo(new Mod[] { new OsuModTouchDevice() }));
AddStep("select NC + TD", () => SelectedMods.Value = new Mod[] { new OsuModTouchDevice(), new OsuModNightcore() });
AddStep("click deselect all button", () =>
{
InputManager.MoveMouseTo(this.ChildrenOfType<DeselectAllModsButton>().Single());
InputManager.Click(MouseButton.Left);
});
AddUntilStep("touch mod still present", () => SelectedMods.Value, () => Is.EqualTo(new Mod[] { new OsuModTouchDevice() }));
}
[Test]
public void TestDeselectAllViaButton()
{
@@ -33,7 +33,7 @@ namespace osu.Game.Overlays.Mods
private void updateEnabledState()
{
Enabled.Value = selectedMods.Value.Any();
Enabled.Value = selectedMods.Value.Any(m => m.Type != ModType.System);
}
}
}