From c0b644c90593b4e4e5fb2b6c02bae3ca793160f4 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 19 Jan 2026 16:55:39 +0900 Subject: [PATCH] Fix osu! logo appearing in at new playlist song select screen after opening mod select (#36385) Closes https://github.com/ppy/osu/issues/36363. --- .../Playlists/PlaylistsSongSelectV2.cs | 18 ++---------------- osu.Game/Screens/SelectV2/SongSelect.cs | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelectV2.cs b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelectV2.cs index 58d472fb99..0431885d1f 100644 --- a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelectV2.cs +++ b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelectV2.cs @@ -18,7 +18,6 @@ using osu.Game.Overlays.Mods; using osu.Game.Rulesets; using osu.Game.Rulesets.Mods; using osu.Game.Screens.Footer; -using osu.Game.Screens.Menu; using osu.Game.Screens.SelectV2; using osu.Game.Utils; @@ -48,6 +47,8 @@ namespace osu.Game.Screens.OnlinePlay.Playlists { this.room = room; + ShowOsuLogo = false; + Padding = new MarginPadding { Horizontal = HORIZONTAL_OVERFLOW_PADDING }; LeftPadding = new MarginPadding { Top = CORNER_RADIUS_HIDE_OFFSET + Header.HEIGHT }; @@ -202,21 +203,6 @@ namespace osu.Game.Screens.OnlinePlay.Playlists return false; } - protected override void LogoArriving(OsuLogo logo, bool resuming) - { - // Intentionally not calling base so the logo isn't shown. - } - - protected override void LogoExiting(OsuLogo logo) - { - // Intentionally not calling base so the logo isn't shown. - } - - protected override void LogoSuspending(OsuLogo logo) - { - // Intentionally not calling base so the logo isn't shown. - } - public override IReadOnlyList CreateFooterButtons() { var buttons = base.CreateFooterButtons().ToList(); diff --git a/osu.Game/Screens/SelectV2/SongSelect.cs b/osu.Game/Screens/SelectV2/SongSelect.cs index b69fd8f896..ecf8b3301b 100644 --- a/osu.Game/Screens/SelectV2/SongSelect.cs +++ b/osu.Game/Screens/SelectV2/SongSelect.cs @@ -93,6 +93,11 @@ namespace osu.Game.Screens.SelectV2 /// protected bool ControlGlobalMusic { get; init; } = true; + /// + /// Whether the osu! logo should be shown at the bottom-right of the screen. + /// + protected bool ShowOsuLogo { get; init; } = true; + protected MarginPadding LeftPadding { get; init; } private ModSelectOverlay modSelectOverlay = null!; @@ -380,7 +385,8 @@ namespace osu.Game.Screens.SelectV2 if (!this.IsCurrentScreen()) return; - logo?.FadeTo(v.NewValue == Visibility.Visible ? 0f : 1f, 200, Easing.OutQuint); + if (ShowOsuLogo) + logo?.FadeTo(v.NewValue == Visibility.Visible ? 0f : 1f, 200, Easing.OutQuint); }); Beatmap.BindValueChanged(_ => @@ -755,6 +761,9 @@ namespace osu.Game.Screens.SelectV2 { base.LogoArriving(logo, resuming); + if (!ShowOsuLogo) + return; + if (logo.Alpha > 0.8f && resuming) Footer?.StartTrackingLogo(logo, 400, Easing.OutQuint); else @@ -778,6 +787,10 @@ namespace osu.Game.Screens.SelectV2 protected override void LogoSuspending(OsuLogo logo) { base.LogoSuspending(logo); + + if (!ShowOsuLogo) + return; + Footer?.StopTrackingLogo(); } @@ -785,6 +798,9 @@ namespace osu.Game.Screens.SelectV2 { base.LogoExiting(logo); + if (!ShowOsuLogo) + return; + Footer?.StopTrackingLogo(); logo.ScaleTo(0.2f, 120, Easing.Out);