From b37a06c0fe0ce05b6b82292219faeafd024c86e2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= <dach.bartlomiej@gmail.com>
Date: Wed, 11 Dec 2024 13:24:54 +0900
Subject: [PATCH] Hide "show playing rooms" toggle when in filter mode it
 doesn't make sense with

---
 .../Multiplayer/MultiplayerLoungeSubScreen.cs     | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerLoungeSubScreen.cs b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerLoungeSubScreen.cs
index 23216c86b2..303ba60875 100644
--- a/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerLoungeSubScreen.cs
+++ b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerLoungeSubScreen.cs
@@ -2,7 +2,6 @@
 // See the LICENCE file in the repository root for full licence text.
 
 using System.Collections.Generic;
-using System.Linq;
 using System.Threading.Tasks;
 using osu.Framework.Allocation;
 using osu.Framework.Bindables;
@@ -48,7 +47,10 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
 
         protected override IEnumerable<Drawable> CreateFilterControls()
         {
-            roomAccessTypeDropdown = new SlimEnumDropdown<RoomPermissionsFilter>
+            foreach (var control in base.CreateFilterControls())
+                yield return control;
+
+            yield return roomAccessTypeDropdown = new SlimEnumDropdown<RoomPermissionsFilter>
             {
                 RelativeSizeAxes = Axes.None,
                 Current = Config.GetBindable<RoomPermissionsFilter>(OsuSetting.MultiplayerRoomFilter),
@@ -57,16 +59,17 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
 
             roomAccessTypeDropdown.Current.BindValueChanged(_ => UpdateFilter());
 
-            showInProgress = new OsuCheckbox
+            yield return showInProgress = new OsuCheckbox
             {
                 LabelText = "Show playing rooms",
                 RelativeSizeAxes = Axes.None,
                 Width = 200,
+                Padding = new MarginPadding { Vertical = 5, },
                 Current = { Value = true }
             };
-            showInProgress.Current.BindValueChanged(_ => UpdateFilter());
 
-            return base.CreateFilterControls().Concat([roomAccessTypeDropdown, showInProgress]);
+            showInProgress.Current.BindValueChanged(_ => UpdateFilter());
+            StatusDropdown.Current.BindValueChanged(_ => showInProgress.Alpha = StatusDropdown.Current.Value == RoomModeFilter.Open ? 1 : 0, true);
         }
 
         protected override FilterCriteria CreateFilterCriteria()
@@ -74,7 +77,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
             var criteria = base.CreateFilterCriteria();
             criteria.Category = @"realtime";
             criteria.Permissions = roomAccessTypeDropdown.Current.Value;
-            criteria.Status = showInProgress.Current.Value ? null : RoomStatusFilter.Idle;
+            criteria.Status = showInProgress.Current.Value && criteria.Mode == RoomModeFilter.Open ? null : RoomStatusFilter.Idle;
             return criteria;
         }