fix: event propagation after exiting fullscreen on Windows #33757
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.
Description of Change
Closes #33721.
Fixes an issue where
Escape
keyboard events would not be properly propagated to the parent window after entering fullscreen and then exiting it again on Windows.This was happening as a result of calling
SetHtmlApiFullscreen(false)
prior to callingexclusive_access_manager_->fullscreen_controller()->ExitFullscreenModeForTab(source)
. This created a race condition, wherein some platforms like macOS would work correctly becuase by the time!exclusive_access_context->IsFullscreen()
was called, it wouldn't yet be true on macOS, andNotifyTabExclusiveAccessLost
would relenquish its hold on keyboard event handling. However, on Windows,!exclusive_access_context->IsFullscreen()
would be true, and thus the controller would continue to eatEscape
key events. Fix this by adjusting the call order.Tested with https://gist.github.com/bc382eeeb368b70fbed1e177bcaacfde on multiple platforms.
Checklist
npm test
passesRelease Notes
Notes: Fixed an issue where
Escape
keyboard events would not be properly propagated to the parent window after entering fullscreen and then exiting it again on Windows.