Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

@bufffun
Copy link
Contributor

@bufffun bufffun commented Jun 3, 2024

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

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the Flutter Style Guide and the C++, Objective-C, Java style guides.
  • I listed at least one issue that this PR fixes in the description above.
  • I added new tests to check the change I am making or feature I am adding, or the PR is test-exempt. See testing the engine for instructions on writing and running engine tests.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the CLA.
  • All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@google-cla
Copy link

google-cla bot commented Jun 3, 2024

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.

@bufffun bufffun marked this pull request as draft June 3, 2024 14:28
@bufffun bufffun marked this pull request as ready for review June 3, 2024 14:30
@bufffun
Copy link
Contributor Author

bufffun commented Jun 3, 2024

@knopp @cbracken Could you please have a look?

@bufffun bufffun force-pushed the fix-cursor-hittest branch 4 times, most recently from 2f0dd4f to 304a973 Compare June 3, 2024 17:36
Copy link
Member

@knopp knopp left a 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.

@bufffun bufffun requested a review from knopp June 4, 2024 00:55
@bufffun bufffun force-pushed the fix-cursor-hittest branch from a1641e9 to 2923e52 Compare June 4, 2024 07:00
@knopp knopp merged commit d4e12ea into flutter:main Jun 4, 2024
@knopp
Copy link
Member

knopp commented Jun 4, 2024

Thanks!

engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jun 4, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jun 4, 2024
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Jun 4, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants