Keep PassThroughInputManager
in input queue even while parent input is disabled
#6340
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PassThroughInputManager
from input queue if parent input is disabled #6225Attached a vital failing test case that deems this to be an incorrect approach (coming from ppy/osu#28931). When the
PassThroughInputManager
is hidden from the input queue, if there is a key pressed before parent input is enabled again, releasing the key after parent input is enabled does not trigger aKeyUpEvent
on the PTIM, as demonstrated in the failing test case.The purpose of hiding PTIM from the input queue in the first place is to prevent it from receiving a
KeyDownEvent
if parent input is enabled by another drawable that received theKeyDownEvent
before the PTIM does (in osu! case, the PTIM is the gameplay input manager and the drawable is the osu! click-to-resume cursor; seeOnPressed
handling in the cursor).To keep the osu!-side issue resolved (ppy/osu#9658), this will be fixed differently by locally scheduling the resume operation one frame after the
KeyDownEvent
, so that the ruleset input manager does not see the event and no press is triggered on resume.