mirror of
https://github.com/ppy/osu.git
synced 2024-11-16 04:27:52 +08:00
b78e7d5d9a
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. |
||
---|---|---|
.. | ||
Carousel | ||
Details | ||
Filter | ||
Leaderboards | ||
Options | ||
BeatmapCarousel.cs | ||
BeatmapClearScoresDialog.cs | ||
BeatmapDeleteDialog.cs | ||
BeatmapDetailArea.cs | ||
BeatmapDetailAreaDetailTabItem.cs | ||
BeatmapDetailAreaLeaderboardTabItem.cs | ||
BeatmapDetailAreaTabControl.cs | ||
BeatmapDetailAreaTabItem.cs | ||
BeatmapDetails.cs | ||
BeatmapInfoWedge.cs | ||
BeatmapInfoWedgeBackground.cs | ||
BeatmapInfoWedgeV2.cs | ||
FilterControl.cs | ||
FilterCriteria.cs | ||
FilterQueryParser.cs | ||
Footer.cs | ||
FooterButton.cs | ||
FooterButtonMods.cs | ||
FooterButtonOptions.cs | ||
FooterButtonRandom.cs | ||
LocalScoreDeleteDialog.cs | ||
ModSpeedHotkeyHandler.cs | ||
NoResultsPlaceholder.cs | ||
PlayBeatmapDetailArea.cs | ||
PlaySongSelect.cs | ||
SkinDeleteDialog.cs | ||
SongSelect.cs | ||
SongSelectTouchInputDetector.cs | ||
WedgeBackground.cs |