Fix footer buttons still being able to fire their action when temporarily hidden by overlay content#37231
Conversation
…rily hidden by overlay content In human words: I read [this forum thread](https://osu.ppy.sh/community/forums/topics/2195138?n=1) today and was horrified to see the user there opening the F3 options menu inm song select when the F1 mod overlay was pulled up, which is (a) not intended UX, (b) looks terrible, and (c) just wrecks the game behaviourally wholesale from start to end. So with this change you don't get to open options via F3 while inside mod overlay at all. The `Action` shadowing is pretty ugly but I don't have better ideas. Initially I tried to mess with `Enabled` (as I did once previously, see 36628e2), but it's much more complicated in this case because the enabled state needs to be restored when the buttons reappear, or it could change independently while the buttons are temporarily hidden, etc. So I'd rather just not deal with all that and invent a parallel scheme.
|
I have a branch where I've been working on cleaning up the footer, and it happens to have this issue fixed through:
All of it makes it so that once a button gets animated off the screen it just automatically stops being considered for inputs as it should1. The branch in question is somewhat large since it refactors the footer logic away from Footnotes
|
In human words: I read this forum thread today and was horrified to see the user there opening the F3 options menu in song select when the F1 mod overlay was pulled up, which is (a) not intended UX, (b) looks terrible, and (c) just wrecks the game behaviourally wholesale from start to end.
So with this change you don't get to open options via F3 while inside mod overlay at all.
The
Actionshadowing is pretty ugly but I don't have better ideas. Initially I tried to mess withEnabled(as I did once previously, see 36628e2), but it's much more complicated in this case because the enabled state needs to be restored when the buttons reappear, or it could change independently while the buttons are temporarily hidden, etc. So I'd rather just not deal with all that and invent a parallel scheme.