1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-21 03:02:54 +08:00
osu-lazer/osu.Game/Screens/Edit
Bartłomiej Dach bdeea37a44
Commit active placement when starting drag selection via timeline
This was reported in https://github.com/ppy/osu/pull/28474, albeit the
code changes proposed there did not fix the issue at all.

See 8b6385f7d0 for demonstration of the
crash scenario. Basically what is happening there is:

- The starting premise is that there is a spinner placement active.
- At this time, a drag selection is started via the timeline.
- Once the drag selection finds at least one suitable object to select,
  it mutates `SelectedItems`.
- When selection changes for any reason, the `HitObjectComposer`
  decides to switch to the "select" tool, regardless of why
  the selection changed.
- Changing the active tool causes the current placement - if any -
  to be committed, which mutates the beatmap.
- Back at the drag box selection code, this causes a "collection
  modified when enumerating" exception.

The proposed fix here is to eagerly commit active placement - if any -
when drag selection is initiated via the timeline, which avoids this
issue. This also appears to vaguely match stable behaviour and is sort
of consistent with the logic of committing any outstanding changes upon
switching to the selection tool.
2024-06-14 09:32:40 +02:00
..
Components Move out section header component from editor 2024-06-12 11:43:40 +02:00
Compose Commit active placement when starting drag selection via timeline 2024-06-14 09:32:40 +02:00
Design Enable nullability for design screen 2023-01-14 02:24:48 +03:00
GameplayTest Remove unused ruleset parameter when testing beatmap in editor 2024-03-01 20:28:52 +08:00
Setup Fix tests dying on a nullref 2024-05-24 11:25:29 +02:00
Timing Update focus specifications in line with framework changes 2024-05-22 21:32:49 +08:00
Verify Apply padding to GridContainers directly 2024-02-20 23:18:37 +03:00
BackgroundDimMenuItem.cs Use existing strings 2023-01-15 14:39:34 +03:00
BeatmapEditorChangeHandler.cs Change the way initial state saving works in EditorChangeHandler to be closer to first change 2023-02-07 16:22:51 +09:00
BindableBeatDivisor.cs Change name and description of force parameter in SetArbitraryDivisor 2024-01-25 05:12:54 -05:00
BottomBar.cs Refactor further to address code quality complaints 2024-06-10 10:30:30 +02:00
ClipboardContent.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
CreateNewDifficultyDialog.cs Localise create/save dialog 2023-01-15 01:50:47 +03:00
DeleteDifficultyConfirmationDialog.cs make ResetConfirmDialog properly utilise its parent's logic 2023-03-05 20:57:26 +01:00
Editor.cs Attempt full editor reload on key count change 2024-06-11 11:31:49 +02:00
EditorBeatmap.cs Fix stack leniency not applying immediately after change 2024-06-10 14:34:22 +02:00
EditorBeatmapSkin.cs Enable NRT in EditorBeatmapSkin 2024-02-23 14:52:44 +01:00
EditorChangeHandler.cs Add RestoreState() to IEditorChangeHandler 2024-06-11 11:31:30 +02:00
EditorClipboard.cs Automated pass 2023-06-24 01:00:03 +09:00
EditorClock.cs Fix incorrect test assumption in TestSceneEditorClock 2023-10-06 16:43:28 +09:00
EditorLoader.cs Move disables to loading screens for better coverage of edge cases 2023-07-30 13:45:42 +09:00
EditorRoundedScreenSettings.cs Automated pass 2023-06-24 01:00:03 +09:00
EditorRoundedScreenSettingsSection.cs Partial everything 2022-11-27 00:00:27 +09:00
EditorScreen.cs Move workaround to subscreen 2024-05-24 10:35:33 +02:00
EditorScreenMode.cs Localise part of editor 2023-01-15 01:50:47 +03:00
EditorScreenWithTimeline.cs Apply padding to GridContainers directly 2024-02-20 23:18:37 +03:00
EditorSkinProvidingContainer.cs Partial everything 2022-11-27 00:00:27 +09:00
EditorState.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
EditorTable.cs Adjust execution order 2024-04-22 07:02:49 +03:00
HitAnimationsMenuItem.cs Automated pass 2023-06-24 01:00:03 +09:00
IEditorChangeHandler.cs Add RestoreState() to IEditorChangeHandler 2024-06-11 11:31:30 +02:00
LegacyEditorBeatmapPatcher.cs Fix slider velocity changes not being undone correctly 2023-10-30 10:59:02 +01:00
PromptForSaveDialog.cs Localise create/save dialog 2023-01-15 01:50:47 +03:00
ReloadEditorDialog.cs Attempt full editor reload on key count change 2024-06-11 11:31:49 +02:00
SaveRequiredPopupDialog.cs Fix editor not prompting before saving beatmap for export 2023-10-25 14:39:46 +09:00
TransactionalCommitComponent.cs Change the way initial state saving works in EditorChangeHandler to be closer to first change 2023-02-07 16:22:51 +09:00
WaveformOpacityMenuItem.cs Automated pass 2023-06-24 01:00:03 +09:00