Hide PassThroughInputManager
from input queue if parent input is disabled
#6225
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
to not sync new presses outsideHandle()
#6221This resolves issue 1 pointed at ppy/osu#9658 (comment), and together with #6221, will resolve the issue entirely.
When the user presses the key to resume gameplay,
ResumeOverlay
enables the game input manager inside the key binding event handler.In master,
PassThroughInputManager
is still included in the input queue even ifUseParentInput
is disabled, therefore, the game input manager will be next in line to handle the resumption key press, and since it's enabled by theResumeOverlay
before its turn comes to handle the event, it will end up handling it and incorrectly counting it as a game press (ResumeOverlay
cannot block the key by returning true because it is nested in a pass-through input manager by itself).With this PR,
PassThroughInputManager
will be hidden from the input queue ifUseParentInput
is disabled, therefore, even ifResumeOverlay
enables the game input manager, the input manager will not be in the input queue to handle the key press.Alternative path would be to schedule the resume operation in osu! so that the resumption key press event in the current frame passes all over the drawables in the input queue without the game input manger handling it, then have game input manager become enabled next frame.
Checked and made sure tests pass in here and in osu! as well.