)]}'
{
  "commit": "62cec3c04285da37e5bc17027cd85a81a9a6fb6e",
  "tree": "ff9edece380d153340a12c3ce5fb4cbe369e05e3",
  "parents": [
    "25b09e883dd82fe965cba9b4ecf9ce5a92a2d8a5"
  ],
  "author": {
    "name": "Matej Knopp",
    "email": "matej.knopp@gmail.com",
    "time": "Wed Apr 17 15:17:53 2024 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Apr 17 15:17:53 2024 +0200"
  },
  "message": "[macOS] FlutterView should not override platform view cursor (#52159)\n\nThis fixes an edge case that I\u0027ve overlooked in\r\nhttps://github.com/flutter/engine/pull/43101.\r\n\r\nIt is possible to configure `FlutterViewController` tracking area with\r\n`FlutterMouseTrackingModeAlways` option, in which case the tracking area\r\nwill call `[FlutterView cursorUpdate:]` unconditionally even if the\r\nmouse cursor is over platform view and the platform view has already\r\nhandled the mouse update.\r\n\r\nThe solution is to prevent the `FlutterView` from updating the cursor\r\nwhen the cursor is over a platform view. This can be accomplished by\r\ndoing a hitTest inside `[FlutterView cursorUpdate:]`.\r\n\r\n## Pre-launch Checklist\r\n\r\n- [x] I read the [Contributor Guide] and followed the process outlined\r\nthere for submitting PRs.\r\n- [x] I read the [Tree Hygiene] wiki page, which explains my\r\nresponsibilities.\r\n- [x] I read and followed the [Flutter Style Guide] and the [C++,\r\nObjective-C, Java style guides].\r\n- [x] I listed at least one issue that this PR fixes in the description\r\nabove.\r\n- [x] I added new tests to check the change I am making or feature I am\r\nadding, or the PR is [test-exempt]. See [testing the engine] for\r\ninstructions on writing and running engine tests.\r\n- [x] I updated/added relevant documentation (doc comments with `///`).\r\n- [x] I signed the [CLA].\r\n- [x] All existing and new tests are passing.\r\n\r\nIf you need help, consider asking for advice on the #hackers-new channel\r\non [Discord].\r\n\r\n\u003c!-- Links --\u003e\r\n[Contributor Guide]:\r\nhttps://github.com/flutter/flutter/wiki/Tree-hygiene#overview\r\n[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene\r\n[test-exempt]:\r\nhttps://github.com/flutter/flutter/wiki/Tree-hygiene#tests\r\n[Flutter Style Guide]:\r\nhttps://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo\r\n[C++, Objective-C, Java style guides]:\r\nhttps://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style\r\n[testing the engine]:\r\nhttps://github.com/flutter/flutter/wiki/Testing-the-engine\r\n[CLA]: https://cla.developers.google.com/\r\n[flutter/tests]: https://github.com/flutter/tests\r\n[breaking change policy]:\r\nhttps://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes\r\n[Discord]: https://github.com/flutter/flutter/wiki/Chat",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "29eec7364d4570508e0e268dd3872e20b778f2d3",
      "old_mode": 33188,
      "old_path": "shell/platform/darwin/macos/framework/Source/FlutterView.mm",
      "new_id": "bafe6984a9e413f8923d2650b73d6f4ec6d7e83c",
      "new_mode": 33188,
      "new_path": "shell/platform/darwin/macos/framework/Source/FlutterView.mm"
    },
    {
      "type": "modify",
      "old_id": "65620a53824e4b3c9e1eb79165d79d16bc46c0bc",
      "old_mode": 33188,
      "old_path": "shell/platform/darwin/macos/framework/Source/FlutterViewTest.mm",
      "new_id": "8e80077906cfe0ad22354928ed4de7bf672129bd",
      "new_mode": 33188,
      "new_path": "shell/platform/darwin/macos/framework/Source/FlutterViewTest.mm"
    }
  ]
}
