1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-19 01:53:21 +08:00
osu-lazer/osu.Game/Screens
rushiiMachine 1d4db3b7a9
Fix SkinEditorOverlay freezing when ReplayPlayer screen exits early
Originally when popping in, the ReplayPlayer was loaded first (if previous screen was MainMenu), and afterwards the SkinEditor component was loaded asynchronously. However, if the ReplayPlayer screen exits quickly (like in the event the beatmap has no objects), the skin editor component has not finished initializing (this is before it was even added to the component tree, so it's still not marked `Visible`), then the screen exiting will cause `OsuGame` to call SetTarget(newScreen) -> setTarget(...) which sees that the cached `skinEditor` is not visible yet, and hides/nulls the field. This is the point where LoadComponentAsync(editor, ...) finishes, and the callback sees that the cached skinEditor field is now different (null) than the one that was loaded, and never adds it to the component tree. This occurrence is unhandled and as such the SkinEditorOverlay never hides itself, consuming all input infinitely.

This PR changes the loading to start loading the ReplayPlayer *after* the SkinEditor has been loaded and added to the component tree.
Additionally, this lowers the exit delay for ReplayPlayer and changes the "no hit objects" notification to not be an error since it's a controlled exit.
2023-12-26 12:22:00 -08:00
..
Backgrounds Use alternative method of scheduling storyboard unload 2023-11-16 15:37:53 +09:00
Edit Add test coverage and refactor to better handle equality edge case 2023-12-26 21:21:08 +09:00
Import Merge branch 'master' into update-framework 2022-11-26 16:19:36 +01:00
Menu Adjust with framework changes 2023-12-04 08:51:21 +09:00
OnlinePlay Remove unused class 2023-12-05 12:43:32 +01:00
Play Fix SkinEditorOverlay freezing when ReplayPlayer screen exits early 2023-12-26 12:22:00 -08:00
Ranking Reorder badges so that SS shows above others 2023-11-29 20:29:52 +09:00
Select Fix rewind backtracking 2023-12-25 15:27:32 -08:00
Spectate Add visualisation of when a spectated player fails 2023-11-24 14:44:57 +09:00
Utility Calculate unstable rate using rate-adjusted offsets 2023-11-10 19:57:44 -08:00
BackgroundScreen.cs Unload beatmap storyboard background when no longer present 2023-11-09 17:20:11 +03:00
BackgroundScreenStack.cs Use alternative method of scheduling storyboard unload 2023-11-16 15:37:53 +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 Allow screens to change the ability to interact with the global track 2023-07-25 20:20:53 +09:00
IPerformFromScreenRunner.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
Loader.cs Revert masking SSBO changes 2023-09-13 23:10:13 +09:00
OsuScreen.cs Fix various other inspections 2023-10-17 17:48:51 +09:00
OsuScreenDependencies.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
OsuScreenStack.cs Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09: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