ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.35k stars 2.28k forks source link

SettingsSlider can change value when Settings Overlay is closed #6121

Open Gabixel opened 5 years ago

Gabixel commented 5 years ago

Describe the bug: If you hold a slider in the Settings Overlay, close the overlay and start dragging the cursor, the slider reaches its maximum value (and some smaller values if you move the cursor close to the edge, depending on the values of the slider).

Screenshots or videos showing encountered issue:

https://user-images.githubusercontent.com/43073074/103647884-45b4e280-4f5c-11eb-8afa-9bd31e82b2dc.mp4

osu!lazer version: 2019.913.0 (updated video: 2020.1229.0)

monochrome22 commented 1 year ago

This issue is not limited to the Settings Overlay, it happens with all sliders. Some examples can be seen here https://github.com/ppy/osu/discussions/23347, though it's easy to reproduce; just hit Esc while dragging a slider. The solution would be to have sliders disengage when they are no longer visible.

peppy commented 1 year ago

Probably a framework-side fix. Although may be hard as the IsPresent state will not be updated in all cases (ie. when a parent is hidden). Isn't the first time something like this has come up though, can probably copy from another case where this was fixed.

frenzibyte commented 3 months ago

Since the issue is caused by the user being able to exit the overlay with keyboard, it may be wiser to end a drag when a key (or any other input that isn't mouse move) is triggered?

peppy commented 2 months ago

Since the issue is caused by the user being able to exit the overlay with keyboard, it may be wiser to end a drag when a key (or any other input that isn't mouse move) is triggered?

This would not solve cases where the slider bar was faded out or hidden due to other reasons. Also that might interfere with editor flows where keys can be pressed while dragging a slider bar.