From 98debc8d44391e0b2dbe802e54e95d981a0ed27e Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 25 Mar 2026 15:56:50 +0900 Subject: [PATCH] Show multiplayer/playlist header content inside title wedge (#37089) Closes https://github.com/ppy/osu/issues/37077. | Before | After | | :---: | :---: | | osu! 2026-03-25 at 05 52 30 | osu! 2026-03-25 at 05 51 31 | --- .../Multiplayer/MultiplayerMatchSongSelect.cs | 2 +- .../OnlinePlay/Playlists/PlaylistsSongSelect.cs | 2 +- osu.Game/Screens/Select/BeatmapTitleWedge.cs | 4 +++- osu.Game/Screens/Select/SongSelect.cs | 12 +++++++++--- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSongSelect.cs b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSongSelect.cs index 706f86a6eb..dcadbc493d 100644 --- a/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSongSelect.cs +++ b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSongSelect.cs @@ -83,7 +83,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer initialItem = itemToEdit ?? room.Playlist.LastOrDefault(); Padding = new MarginPadding { Horizontal = HORIZONTAL_OVERFLOW_PADDING }; - LeftPadding = new MarginPadding { Top = CORNER_RADIUS_HIDE_OFFSET + Header.HEIGHT }; + TopPadding = Header.HEIGHT - 10; freeModSelect = new FreeModSelectOverlay { diff --git a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelect.cs b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelect.cs index 0fa0266cc9..2ab1deaf66 100644 --- a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelect.cs +++ b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelect.cs @@ -51,7 +51,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists ShowOsuLogo = false; Padding = new MarginPadding { Horizontal = HORIZONTAL_OVERFLOW_PADDING }; - LeftPadding = new MarginPadding { Top = CORNER_RADIUS_HIDE_OFFSET + Header.HEIGHT }; + TopPadding = Header.HEIGHT - 10; addToPlaylistFooterButton = new AddToPlaylistFooterButton { diff --git a/osu.Game/Screens/Select/BeatmapTitleWedge.cs b/osu.Game/Screens/Select/BeatmapTitleWedge.cs index 657e3ba15b..5a4154e0b8 100644 --- a/osu.Game/Screens/Select/BeatmapTitleWedge.cs +++ b/osu.Game/Screens/Select/BeatmapTitleWedge.cs @@ -46,6 +46,8 @@ namespace osu.Game.Screens.Select [Resolved] private IBindable onlineLookupResult { get; set; } = null!; + public float TopPadding { get; init; } + protected override bool StartHidden => true; private ModSettingChangeTracker? settingChangeTracker; @@ -97,7 +99,7 @@ namespace osu.Game.Screens.Select Direction = FillDirection.Vertical, Padding = new MarginPadding { - Top = SongSelect.WEDGE_CONTENT_MARGIN, + Top = SongSelect.WEDGE_CONTENT_MARGIN + TopPadding, Left = SongSelect.WEDGE_CONTENT_MARGIN }, Spacing = new Vector2(0f, 4f), diff --git a/osu.Game/Screens/Select/SongSelect.cs b/osu.Game/Screens/Select/SongSelect.cs index 51e814b1a1..b1df6a9be1 100644 --- a/osu.Game/Screens/Select/SongSelect.cs +++ b/osu.Game/Screens/Select/SongSelect.cs @@ -99,7 +99,11 @@ namespace osu.Game.Screens.Select /// protected bool ShowOsuLogo { get; init; } = true; - protected MarginPadding LeftPadding { get; init; } + /// + /// Additional padding to be added to the title wedge. + /// Generally set to show external content in this space. + /// + public float TopPadding { get; init; } private ModSelectOverlay modSelectOverlay = null!; private ModSpeedHotkeyHandler modSpeedHotkeyHandler = null!; @@ -233,10 +237,12 @@ namespace osu.Game.Screens.Select RelativeSizeAxes = Axes.Both, Spacing = new Vector2(0f, 4f), Direction = FillDirection.Vertical, - Padding = LeftPadding, Children = new Drawable[] { - new ShearAligningWrapper(titleWedge = new BeatmapTitleWedge()), + new ShearAligningWrapper(titleWedge = new BeatmapTitleWedge + { + TopPadding = TopPadding, + }), new ShearAligningWrapper(detailsArea = new BeatmapDetailsArea()), }, },