From 3f06a0ef9e89221bd71b3895463c90d9acd5297b Mon Sep 17 00:00:00 2001
From: Salman Ahmed <frenzibyte@gmail.com>
Date: Tue, 25 Jun 2024 06:15:02 +0300
Subject: [PATCH] Block certain operations when customisation panel is open

Normally I would just block keyboard input from going past `ModCustomisationPanel`, but it's a little complicated here since I'm dealing with global action key binding presses, and I also still want actions like `GlobalAction.Back` to get past the customisation panel even if it's expanded.
---
 osu.Game/Overlays/Mods/ModSelectOverlay.cs | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/osu.Game/Overlays/Mods/ModSelectOverlay.cs b/osu.Game/Overlays/Mods/ModSelectOverlay.cs
index 8c3c81f2e1..56e0a88b5a 100644
--- a/osu.Game/Overlays/Mods/ModSelectOverlay.cs
+++ b/osu.Game/Overlays/Mods/ModSelectOverlay.cs
@@ -691,7 +691,7 @@ namespace osu.Game.Overlays.Mods
                 // wherein activating the binding will both change the contents of the search text box and deselect all mods.
                 case GlobalAction.DeselectAllMods:
                 {
-                    if (!SearchTextBox.HasFocus)
+                    if (!SearchTextBox.HasFocus && !customisationPanel.Expanded.Value)
                     {
                         deselectAllModsButton.TriggerClick();
                         return true;
@@ -762,6 +762,9 @@ namespace osu.Game.Overlays.Mods
             if (e.Repeat || e.Key != Key.Tab)
                 return false;
 
+            if (customisationPanel.Expanded.Value)
+                return true;
+
             // TODO: should probably eventually support typical platform search shortcuts (`Ctrl-F`, `/`)
             setTextBoxFocus(!SearchTextBox.HasFocus);
             return true;