osu icon indicating copy to clipboard operation
osu copied to clipboard

HitObjects outside of track cannot be dragged

Open eoyoa opened this issue 2 years ago • 3 comments

Type

Game behaviour

Bug description

To reproduce:

  • Go into the editor.
  • Add a timing point from the Timing screen.
  • Add any HitObject from the Compose screen.
  • Drag the newly created HitObject past the track's end time.
  • Attempt to move it by dragging. Start the drag at any point past the track's end time.

Seems to be an issue with line 97 of TimelineBlueprintContainer. Since the HitObject is outside of the timeline's positional input area, OnDragStart aborts early.

Consider https://github.com/ppy/osu/issues/24950#issuecomment-1740735546 before fixing?

Screenshots or videos

No response

Version

2023.924.1

Logs

database.log input.log network.log performance.log runtime.log

eoyoa avatar Sep 29 '23 12:09 eoyoa

Trying to look into this, removing base. from this line does fix it, however introduces a new issue in that you can't scroll with the mouse through the timeline. https://github.com/ppy/osu/blob/fa1da193ffd7af42f5f269bd11e25e321c384df9/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineBlueprintContainer.cs#L97

With the aforementioned change, it will eat the input from anywhere in the range bellow (besides the outer border). What I say should happen most likely, is instead have it occur in the same vertical range that we have the pale white overlay appear, and leave the horizontal range only capped by the timeline. image

Hecatia-Lapislazuli avatar May 29 '24 10:05 Hecatia-Lapislazuli

As stated in the OP I don't think looking at solutions for this before addressing https://github.com/ppy/osu/issues/24950 is productive. In fact fixing that may as well solve both issues.

bdach avatar May 30 '24 05:05 bdach

Hmm... Reasoning for approaching this first was when looking there, felt it was somewhat undecided the solution, and thought to just address the immediate issue. If you do drag a hit object out of the timeline area (or if it get's knocked out of said area for some other reason), you should be able to still drag the hit object.

But yeah, maybe best to work on something like the following to tackle it instead.

permit placement of an object anywhere but ensure the underlying track is extended enough to be able to do anything to it.

Although, I suspect depending on how the other issue is handled it won't fully address this one. Reasoning is, if you have a HitObject at the very end of the timeline area, you can select its left half, but not its right half.

Blocking placement outside of timeline area won't address this, and extending the track would require a buffer added to the end to address it, which may result in weirdness.

Hecatia-Lapislazuli avatar May 30 '24 06:05 Hecatia-Lapislazuli