1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-11 08:27:49 +08:00
osu-lazer/osu.Game
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
..
Audio Add fallback to find spinner samples without a bank prefix 2024-03-09 01:10:28 +09:00
Beatmaps Fix code quality and null handling 2024-06-07 00:01:50 +08:00
Collections Update framework 2024-05-23 01:21:12 +08:00
Configuration Add setting to allow hiding all country flags 2024-05-10 20:32:21 +08:00
Database Merge branch 'master' into total-score-without-mods-once-more 2024-05-27 15:16:58 +02:00
Extensions Fix date failing to display on leaderboard for some scores with weird datetimes 2024-01-14 13:52:39 +01:00
Graphics Move out section header component from editor 2024-06-12 11:43:40 +02:00
Input Change editor scale hotkey to Ctrl-E 2024-05-29 10:14:47 +02:00
IO Update naming of enum fields in ObjType 2024-05-01 17:24:53 +03:00
IPC
Localisation Attempt full editor reload on key count change 2024-06-11 11:31:49 +02:00
Models Use native query to avoid huge overheads when cleaning up realm files 2024-01-09 15:37:29 +09:00
Online Add start date to Room 2024-06-12 11:43:18 +02:00
Overlays Add RestoreState() to IEditorChangeHandler 2024-06-11 11:31:30 +02:00
Performance Expose high performance session state 2024-04-16 10:04:38 +08:00
Properties Make medal overlay respect overlay disable via activation mode 2024-02-20 16:31:31 +01:00
Replays Show smoke in replays 2022-09-18 17:55:06 -07:00
Rulesets Commit active placement when starting drag selection via timeline 2024-06-14 09:32:40 +02:00
Scoring Merge branch 'master' into negative-frame-handling 2024-05-29 13:14:59 +09:00
Screens Commit active placement when starting drag selection via timeline 2024-06-14 09:32:40 +02:00
Skinning Adjust transitions 2024-06-07 17:04:16 +08:00
Storyboards Use sb element path as a name 2024-05-25 13:24:25 +03:00
Tests Add client/server models & operations for "daily challenge" feature 2024-05-17 10:58:08 +02:00
Updater Warn about not using an official "deployed" build 2024-03-21 00:47:45 +09:00
Users Fix nullability inspection 2024-05-10 23:26:43 +08:00
Utils Fix code quality and null handling 2024-06-07 00:01:50 +08:00
.editorconfig
FodyWeavers.xml More realm analytic disables 2023-07-20 17:51:33 +09:00
osu!.res
osu.Game.csproj Update framework 2024-05-28 21:29:29 +09:00
OsuGame.cs Merge branch 'master' into footer-v2-become-global 2024-06-08 14:13:05 +03:00
OsuGameBase_Importing.cs Automated pass 2023-06-24 01:00:03 +09:00
OsuGameBase.cs Revert "Temporary rollback of framework / SDL3" 2024-05-22 16:29:39 +08:00
PerformFromMenuRunner.cs Partial everything 2022-11-27 00:00:27 +09:00