1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-25 21:32:57 +08:00
osu-lazer/osu.Game/Screens
Bartłomiej Dach b78e7d5d9a
Fix multiplayer song select not correctly applying filter sometimes
Fixes the root client-side failure causing
https://github.com/ppy/osu/issues/30415.

Thread of breakage is as follows:

1. `SongSelect` loads the carousel.
   At this point, the ruleset is what the ambient ruleset would have
   been at the time of pushing song select, so most likely it will
   match the current ruleset.
   Notably, the carousel is loaded with `AllowSelection == false`.
2. `OnlinePlaySongSelect` sets the ruleset to the one taken from
   the relevant playlist item in `LoadComplete()`.
3. At any point between the previous and the next step, the user
   changes the ruleset manually.
4. `SongSelect.carouselBeatmapsLoaded()` is ran, which calls
   `transferRulesetValue()`, which calls `FilterControl.FilterChanged`.
   But at this stage `Carousel.AllowSelection` is still false, so
   the filter is not executed, but `pendingFilterApplication` is set
   instead.
   Unfortunately, the pending filter never gets applied after that.
   The only place that checks that flag is `OnEntering()`, which at
   this point has already ran.

To fix, move the `pendingFilterApplication` check to `Update()`, which
seems like the most obvious and safe solution.
2024-10-25 21:29:53 +02:00
..
Backgrounds Remove requirement of specifying animateOnnter in BackgroundScreen ctor 2024-08-07 19:07:44 +09:00
Edit Fix addition banks disabled on reset 2024-10-24 13:17:49 +02:00
Footer Explicitly define Hue rather than implicitly provide it by enum value 2024-07-18 00:26:24 +03:00
Import Redesign directory & file selector (and update usages accordingly) 2024-09-24 14:54:48 +02:00
Menu Merge pull request #29542 from frenzibyte/show-daily-challenge-intro-once-per-session 2024-09-01 21:27:16 +09:00
OnlinePlay Do not show daily challenge conclusion notification on disconnection 2024-10-11 14:18:19 +02:00
Play Fix playfield skinning layer no longer correctly rotating with the playfield 2024-10-21 13:49:12 +02:00
Ranking Fix statistics update not being shown on results screen if it arrives too fast 2024-09-24 17:52:19 +02:00
Select Fix multiplayer song select not correctly applying filter sometimes 2024-10-25 21:29:53 +02:00
SelectV2 Inline single-frame layout issue comment instead 2024-08-14 00:41:43 -07:00
Spectate Remove managed clocks from SpectatorSyncManager on gameplay completion / abort 2024-04-26 15:29:59 +08:00
Utility Adjust calls to GetContainingInputManager() 2024-06-18 07:41:19 +02:00
BackgroundScreen.cs Remove requirement of specifying animateOnnter in BackgroundScreen ctor 2024-08-07 19:07:44 +09:00
BackgroundScreenStack.cs Remove requirement of specifying animateOnnter in BackgroundScreen ctor 2024-08-07 19:07:44 +09:00
IHandlePresentBeatmap.cs Automated pass 2023-06-24 01:00:03 +09:00
IHasSubScreenStack.cs Automated pass 2023-06-24 01:00:03 +09:00
IOsuScreen.cs Move screen footer to OsuGame 2024-05-16 07:48:58 +03:00
IPerformFromScreenRunner.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
Loader.cs Reorganise with ruleset shader separated out 2024-09-27 16:19:24 +09:00
OsuScreen.cs Move screen footer to OsuGame 2024-05-16 07:48:58 +03:00
OsuScreenDependencies.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
OsuScreenStack.cs Move screen footer to OsuGame 2024-05-16 07:48:58 +03:00
ScorePresentType.cs Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
ScreenWhiteBox.cs Partial everything 2022-11-27 00:00:27 +09:00
StartupScreen.cs Automated pass 2023-06-24 01:00:03 +09:00