-
Notifications
You must be signed in to change notification settings - Fork 6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[macOS] Fix FlutterView cursor hit testing #53171
Conversation
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
2f0dd4f
to
304a973
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The fix seems good to me. hitTest:
location is in superview coordinate space, so I should have used superview to transform the coordinates.
a1641e9
to
2923e52
Compare
Thanks! |
…149680) flutter/engine@e211c43...fe00f02 2024-06-04 [email protected] Separate layer-specific data in DisplayListBuilder::SaveInfo (flutter/engine#53186) 2024-06-04 [email protected] [macOS] Fix FlutterView cursor hit testing (flutter/engine#53171) 2024-06-04 [email protected] Roll Dart SDK from 9dce57c343ec to 2d7d6facc2b4 (1 revision) (flutter/engine#53193) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
fix cursor hit testing in platform view in #52159
We found that the mechanism of
[NSView hitTest: view]
will handle the flip coordinate automatically. In the previous PR, because the superview of FlutterView was not flipped, we should not convert the point using[self convertPoint:event.locationInWindow fromView:nil]
.The FlutterView hit test should run under the window coordinate system; otherwise, FlutterMutatorView will hit a wrong point.Before the fix:
Actual mouse move:
event.locationInWindow (x = 47.45703125, y = 416.86328125)
FlutterView HitTest:
(NSPoint) point = (x = 47.45703125, y = 203.13671875)
FlutterMutatorView HitTest:
(NSPoint) point = (x = 47.45703125, y = 416.86328125)
After the fix:
Actual mouse move:
event.locationInWindow (x = 47.45703125, y = 416.86328125)
FlutterView HitTest:
(NSPoint) point = (x = 47.45703125, y = 416.86328125)
FlutterMutatorView HitTest:
(NSPoint) point = (x = 47.45703125, y = 203.13671875)
Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.