fix: GetCursorScreenpoint()
sometimes wrongly returns (0,0)
#41275
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
Fixes #41143.
The bug was introduced in https://chromium-review.googlesource.com/c/chromium/src/+/5214873 which tests for
x11::Input::CrossingEvent
but callsui::EventSystemLocationFromXEvent()
, which uses the similarly-named-but-different-classx11::CrossingEvent
. This mismatch causesx11::Input::CrossingEvent
s to incorrectly record the cursor's location at0, 0
.https://chromium-review.googlesource.com/c/chromium/src/+/5225569 exposed the 5214873 bug to Electron via
X11ScreenOzone::GetCursorScreenPoint()
, which caches the return value ofX11ScreenOzone::GetCursorScreenPoint()
to avoid a round trip to X.This patch should be backported to e29 to fix the release blocker + upstreamed to Chromium.
All reviews welcome!
Checklist
npm test
passesRelease Notes
Notes: Fixed Electron 29.0.0-beta.3 regression that could pop up context menus in the wrong location.