Adjust all selected hold notes if they have the same StartTime and Duration#36656
Adjust all selected hold notes if they have the same StartTime and Duration#3665664ArthurAraujo wants to merge 18 commits intoppy:masterfrom
Conversation
Looks through the selected items and adjust them accordingly if they have the same StartTime and Duration
|
I dunno what to think of any of this really. Even aside from the implementation wonkage (of which there is some, because of float rounding errors as usual):
And stable isn't any help here because in stable (a) the top timeline shows nothing other than bar lines and (b) you can't even attempt to drag a hold note end when multiple objects are selected because it will deselect everything other than the object you're trying to drag. Like I dunno. The issue to me is half-baked in spec to begin with. I would have never acted on it without extensive clarification myself. So I can't find myself realistically ever approving this unless the requirements are actually hashed out properly. |
|
I think the behaviour makes sense, but should maybe also apply on the playfield. I'd also be okay with it only working on the timeline because it somewhat feels like it should work there, at very least. |
osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineHitObjectBlueprint.cs
Outdated
Show resolved
Hide resolved
Fixes the user being able to drag multiple notes by dragging a note outside of the selection
Fixes the problem of two or more hold notes being bound together if they match start time and duration mid-drag
Adapts the test to pause for a while at the moment that both holds have the same length
|
What's the status for re-review on this? There are new changes but apparently none of them relevant to the preceding discussion? There's also fix commits in there like 49b2ae2 apparently but without test coverage? Very confused. |
|
I moved the loop that checks for objects in the blueprint to I modified a existing test to stop the moment they matched and continue decreasing the note's duration until the smallest size (like it was done previously). There is no new assertions because One thing that could be pointed out is that Also i noticed a forgot to write a test to 8c158b6, my bad ill write as soon as possible |
|
The changes are fine I just don't know whether you're done making changes and I can approach re-review. Also 8ccbe5b is a dubious commit I would just revert. I don't see any reason to apply DRY in tests. |
|
Yep its done, it is working as described without any bugs, please re-review it. |
This reverts commit 8ccbe5b.
Basically any significant duration change would add another reference to the dragged object.
I also don't get this requirement. I'll do a UX pass on this and see how things feel. |
|
Is this supposed to work? Or am I missing something? osu.2026-02-25.at.05.45.00.mp4 |
|
It worked when I tested it. |
|
Don't sink more time into this for now, I'll investigate as a lower priority. Still not 100% on the behaviour so. |
Addresses #36267
The drag now checks all the selected objects in the blueprint container to see if they have the same
StartTimeandDurationas the dragged note, and if so, adjust them accordingly.