1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-17 02:53:01 +08:00
osu-lazer/osu.Game/Rulesets
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
..
Configuration Apply Bindable.Parse refactorings 2023-12-13 14:07:38 +09:00
Difficulty Preserve storyboard events when saving a beatmap in the editor 2024-04-30 00:01:56 +08:00
Edit Commit active placement when starting drag selection via timeline 2024-06-14 09:32:40 +02:00
Filter Don't re-filter unless mods may change the filter 2024-04-15 21:07:36 +09:00
Judgements Use hopefully safer implementation of anchoring judgements to objects 2024-05-29 11:11:43 +02:00
Mods Fix cinema mod not hiding playfield skin layer 2024-05-27 14:52:28 +09:00
Objects Use more descriptive HitObject names for debugger displays 2024-06-13 15:18:39 +09:00
Replays Remove the nullable disable annotation in the Rulesets.Replays namespace in the osu.game project. 2022-07-02 13:08:25 +08:00
Scoring Revert "Temporary rollback of framework / SDL3" 2024-05-22 16:29:39 +08:00
Timing Standardise control point search logic in OverlappingScrollAlgorithm 2022-10-18 16:01:05 +09:00
UI Merge branch 'master' into LeaderBoardScore_clean 2024-05-27 17:18:41 +09:00
AssemblyRulesetStore.cs Fix AssemblyRulesetStore not marking rulesets as available 2024-06-02 17:33:06 +09:00
ILegacyRuleset.cs Add ability to query key count with mods 2024-03-28 22:51:12 +09:00
IRulesetConfigCache.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
IRulesetInfo.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
IRulesetStore.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
RealmRulesetStore.cs Ensure TryDisableCustomRulesetsCausing() never actually crashes itself 2024-03-25 11:34:29 +01:00
Ruleset.cs Split mania difficulty section implementation off completely from base 2024-06-11 11:30:20 +02:00
RulesetConfigCache.cs Partial everything 2022-11-27 00:00:27 +09:00
RulesetInfo.cs Remove usages of [ExcludeFromDynamicCompile] 2023-05-08 18:12:56 +09:00
RulesetLoadException.cs Automated pass 2023-06-24 01:00:03 +09:00
RulesetSelector.cs Use property instead of ctor parameter 2023-01-12 23:26:29 +03:00
RulesetStore.cs Attempt to disable rulesets that can be linked to an unhandled crash 2024-03-22 19:05:58 +01:00