From ed189fecf4287142b5094672d7aad7a5a33179b2 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 1 Jul 2025 19:30:47 +0900 Subject: [PATCH 1/2] Make `ShearedButton` block mouse down events Closes https://github.com/ppy/osu/issues/33748. I (and tests) can't find any regressions from this. One would hope we aren't relying on fall-through mouse down anywhere beneath buttons.. --- osu.Game/Graphics/UserInterface/ShearedButton.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Graphics/UserInterface/ShearedButton.cs b/osu.Game/Graphics/UserInterface/ShearedButton.cs index 16891babf3..2047fc74f4 100644 --- a/osu.Game/Graphics/UserInterface/ShearedButton.cs +++ b/osu.Game/Graphics/UserInterface/ShearedButton.cs @@ -179,7 +179,7 @@ namespace osu.Game.Graphics.UserInterface protected override bool OnMouseDown(MouseDownEvent e) { Content.ScaleTo(0.9f, 2000, Easing.OutQuint); - return base.OnMouseDown(e); + return true; } protected override void OnMouseUp(MouseUpEvent e) From 5f48124a94f673a58a5269ad69ed442079741c2e Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 1 Jul 2025 19:47:33 +0900 Subject: [PATCH 2/2] Also fix leaderboard scores not eating mouse down Closes second portion of https://github.com/ppy/osu/issues/33748. --- osu.Game/Screens/SelectV2/BeatmapLeaderboardWedge.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/osu.Game/Screens/SelectV2/BeatmapLeaderboardWedge.cs b/osu.Game/Screens/SelectV2/BeatmapLeaderboardWedge.cs index 10917f08ac..0554b1b815 100644 --- a/osu.Game/Screens/SelectV2/BeatmapLeaderboardWedge.cs +++ b/osu.Game/Screens/SelectV2/BeatmapLeaderboardWedge.cs @@ -14,6 +14,7 @@ using osu.Framework.Graphics; using osu.Framework.Graphics.Colour; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Sprites; +using osu.Framework.Input.Events; using osu.Framework.Threading; using osu.Game.Beatmaps; using osu.Game.Graphics; @@ -82,6 +83,13 @@ namespace osu.Game.Screens.SelectV2 private const float personal_best_height = 112; + // Blocking mouse down is required to avoid song select's background reveal logic happening while hovering scores. + // Our horizontal alignment doesn't really align with the rest of the sheared components (protrudes a touch to the right) which makes + // it complicated to handle this at a higher level. + public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => scoresScroll.ReceivePositionalInputAt(screenSpacePos); + + protected override bool OnMouseDown(MouseDownEvent e) => true; + [BackgroundDependencyLoader] private void load() {