You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If you use 1.0x UI scaling, open the precise scale or rotate tool popover, scroll to the top of the right toolbox, and hover the right toolbox, the popover starts rapidly blinking back and forth every frame.
Screenshots or videos
Due to the framerate of the recording you can't see how it moves back and forth every frame.
osu._TVtrXlTHzG.mp4
Version
current master branch 14/07/2024
Logs
n/a
The text was updated successfully, but these errors were encountered:
Closesppy/osu#28865.
The issue is caused specifically by the "arrow" part of the popover.
The feedback loop involved in this is as follows:
- A popover is added to the scene graph. The automatic anchor selection
logic chooses an anchor and a position for it. For the arrow part
specifically, this is compounded with a counteracting adjustment
that ensures that the popover arrow continues to point at its target
drawable:
https://github.com/ppy/osu-framework/blob/691d8671be5f65f76b4800e85141bb6fde67e139/osu.Framework/Graphics/Cursor/PopoverContainer.cs#L143-L147
- The base `Popover` class uses autosize on both axes of its
`BoundingBoxContainer`, whose bounds are used to calculate the best
anchor:
https://github.com/ppy/osu-framework/blob/691d8671be5f65f76b4800e85141bb6fde67e139/osu.Framework/Graphics/UserInterface/Popover.cs#L21
The arrow is under the bounding box container. Adjusting a drawable's
position affects autosize by way of changing
`RequiredParentSizeToFit`, which means that if the drawable's target
is significantly off screen, the calculated autosize of the container
rapidly balloons.
- If the popover size increases enough, then no anchors will be
considered fitting (because to the automatic layouting logic, it looks
like the popover won't fit in *any* direction). Thus, the popover's
anchor is changed from whatever it was on the previous frame to
`Centre`, and the arrow's position is reset to zero.
- The resetting of the arrow position to zero brings us back to
the situation from the first point, completing the feedback cycle.
To counteract this, exclude the popover arrow from participating in
autosize calculations.
Type
Game behaviour
Bug description
If you use 1.0x UI scaling, open the precise scale or rotate tool popover, scroll to the top of the right toolbox, and hover the right toolbox, the popover starts rapidly blinking back and forth every frame.
Screenshots or videos
Due to the framerate of the recording you can't see how it moves back and forth every frame.
osu._TVtrXlTHzG.mp4
Version
current master branch 14/07/2024
Logs
n/a
The text was updated successfully, but these errors were encountered: