-
-
Notifications
You must be signed in to change notification settings - Fork 981
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 Support #2588
macOS Support #2588
Conversation
@jfedak thanks for participating and contributing. What else need to be done to make this ready? |
Hi @HeroBanana. First of all, thanks a lot for your PR. It took me some time to learn about gesture handlers on macOS and to review this PR, but in the end I made some changes that should fix everything. My changes include:
I also plan to test it a bit more, both on macOS and iOS (to make sure everything works fine) and to do the final review. |
249e95f
to
ee67ef2
Compare
While it feels like it is something that should be done quickly, I agree that we can leave it for another PR. This one is already pretty big 😅. |
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.
Few more comments.
apple/RNGestureHandler.m
Outdated
return [RNGestureHandlerEventExtraData | ||
forPosition:[recognizer locationInView:recognizer.view] | ||
withAbsolutePosition:[recognizer locationInView:recognizer.view.window.contentView] | ||
withNumberOfTouches:1 ]; |
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.
I haven't heard the conversation that you're referring to, but do we really have information only about one pointer?
information about the number of pointers doesn't make any sense on mac, as we only have one pointer.
So how does rotation work if that's the case? Isn't there any option to get how many pointers are currently on touchpad?
apple/Handlers/RNPanHandler.m
Outdated
- (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event | ||
{ | ||
[self interactionsBegan:touches withEvent:event]; | ||
} |
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.
Then please add a comment explaining why it is called in another place.
I know that I probably asked twice about the same super
(first why we move it into other function, and then why we move it back), sorry for that. I simply didn't see that it was brought back to interactionsBegan
since all of those touches...
functions have this call.
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.
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.
Good job!
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.
LGTM, left some minor comments. This was a tough one!
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.
Congrats on this PR! 🎉
Thank you @jfedak for your incredible work on this PR. |
…4933) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [react-native-gesture-handler](https://togithub.com/software-mansion/react-native-gesture-handler) | [`^2.14.1` -> `^2.15.0`](https://renovatebot.com/diffs/npm/react-native-gesture-handler/2.14.1/2.15.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-native-gesture-handler/2.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-native-gesture-handler/2.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-native-gesture-handler/2.14.1/2.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-native-gesture-handler/2.14.1/2.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>software-mansion/react-native-gesture-handler (react-native-gesture-handler)</summary> ### [`v2.15.0`](https://togithub.com/software-mansion/react-native-gesture-handler/releases/tag/2.15.0) [Compare Source](https://togithub.com/software-mansion/react-native-gesture-handler/compare/2.14.1...2.15.0) #### ❗ Important changes - macOS Support by [@​HeroBanana](https://togithub.com/HeroBanana) and [@​jfedak](https://togithub.com/jfedak) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2588](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2588) - feat: add visionOS support by [@​tomekzaw](https://togithub.com/tomekzaw) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2743](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2743) - Add `mouseButton` prop by [@​m-bert](https://togithub.com/m-bert) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2676](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2676) - Migrate Gesture Handler to TurboModule by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2354](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2354) #### 🐛 Bug fixes - Add checks for the same instance of handler usage across multiple `GestureDetectors` by [@​m-bert](https://togithub.com/m-bert) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2694](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2694) - Remove `didMountComponentsWithRootTag` on the new arch by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2687](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2687) - Fix double start when `activateAfterLongPress` is used by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2628](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2628) - Reset relevant handler when recognizer gets reset. by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2705](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2705) - Fix `inactive` handlers staying at finished state by [@​m-bert](https://togithub.com/m-bert) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2738](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2738) - Change functions in windows module file to no-ops. by [@​m-bert](https://togithub.com/m-bert) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2741](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2741) - Fix handlers coming back from being cancelled by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2704](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2704) - fix: restore ReactMethod annotation by [@​WoLewicki](https://togithub.com/WoLewicki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2722](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2722) #### 🔢 Miscellaneous - Bump react-devtools-core from 4.27.6 to 4.28.4 in /example by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2650](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2650) - Add `workflow_dispatch` to workflows by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2295](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2295) - Update supported versions in readme and in docs by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2684](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2684) - Prevent GH actions trigger on forks, update template by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2696](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2696) - Auto add `Platform: MacOS` label when `MacOS` is picked in the issue by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2699](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2699) - Change eslint `ban-types` to warning. by [@​m-bert](https://togithub.com/m-bert) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2714](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2714) - Fix macOS warning message by [@​jfedak](https://togithub.com/jfedak) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2713](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2713) - Bump dependencies to stable React Native 0.73.2 by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2698](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2698) - Add macOS app icon by [@​jfedak](https://togithub.com/jfedak) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2723](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2723) - Bump follow-redirects from 1.15.3 to 1.15.4 in /e2e/web-tests by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2719](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2719) #### New Contributors - [@​mrousavy](https://togithub.com/mrousavy) made their first contribution in [https://github.com/software-mansion/react-native-gesture-handler/pull/2690](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2690) - [@​HeroBanana](https://togithub.com/HeroBanana) made their first contribution in [https://github.com/software-mansion/react-native-gesture-handler/pull/2588](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2588) - [@​fxamauri](https://togithub.com/fxamauri) made their first contribution in [https://github.com/software-mansion/react-native-gesture-handler/pull/2712](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2712) - [@​jfedak](https://togithub.com/jfedak) made their first contribution in [https://github.com/software-mansion/react-native-gesture-handler/pull/2713](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2713) - [@​computerjazz](https://togithub.com/computerjazz) made their first contribution in [https://github.com/software-mansion/react-native-gesture-handler/pull/2715](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2715) **Full Changelog**: software-mansion/react-native-gesture-handler@2.14.0...2.15.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 5pm,every weekend" in timezone America/Los_Angeles, Automerge - "after 5pm,every weekend" in timezone America/Los_Angeles. 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/valora-inc/wallet). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: valora-bot <[email protected]>
…alora-inc#4933) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [react-native-gesture-handler](https://togithub.com/software-mansion/react-native-gesture-handler) | [`^2.14.1` -> `^2.15.0`](https://renovatebot.com/diffs/npm/react-native-gesture-handler/2.14.1/2.15.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-native-gesture-handler/2.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-native-gesture-handler/2.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-native-gesture-handler/2.14.1/2.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-native-gesture-handler/2.14.1/2.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>software-mansion/react-native-gesture-handler (react-native-gesture-handler)</summary> ### [`v2.15.0`](https://togithub.com/software-mansion/react-native-gesture-handler/releases/tag/2.15.0) [Compare Source](https://togithub.com/software-mansion/react-native-gesture-handler/compare/2.14.1...2.15.0) #### ❗ Important changes - macOS Support by [@​HeroBanana](https://togithub.com/HeroBanana) and [@​jfedak](https://togithub.com/jfedak) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2588](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2588) - feat: add visionOS support by [@​tomekzaw](https://togithub.com/tomekzaw) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2743](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2743) - Add `mouseButton` prop by [@​m-bert](https://togithub.com/m-bert) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2676](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2676) - Migrate Gesture Handler to TurboModule by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2354](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2354) #### 🐛 Bug fixes - Add checks for the same instance of handler usage across multiple `GestureDetectors` by [@​m-bert](https://togithub.com/m-bert) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2694](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2694) - Remove `didMountComponentsWithRootTag` on the new arch by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2687](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2687) - Fix double start when `activateAfterLongPress` is used by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2628](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2628) - Reset relevant handler when recognizer gets reset. by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2705](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2705) - Fix `inactive` handlers staying at finished state by [@​m-bert](https://togithub.com/m-bert) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2738](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2738) - Change functions in windows module file to no-ops. by [@​m-bert](https://togithub.com/m-bert) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2741](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2741) - Fix handlers coming back from being cancelled by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2704](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2704) - fix: restore ReactMethod annotation by [@​WoLewicki](https://togithub.com/WoLewicki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2722](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2722) #### 🔢 Miscellaneous - Bump react-devtools-core from 4.27.6 to 4.28.4 in /example by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2650](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2650) - Add `workflow_dispatch` to workflows by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2295](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2295) - Update supported versions in readme and in docs by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2684](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2684) - Prevent GH actions trigger on forks, update template by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2696](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2696) - Auto add `Platform: MacOS` label when `MacOS` is picked in the issue by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2699](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2699) - Change eslint `ban-types` to warning. by [@​m-bert](https://togithub.com/m-bert) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2714](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2714) - Fix macOS warning message by [@​jfedak](https://togithub.com/jfedak) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2713](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2713) - Bump dependencies to stable React Native 0.73.2 by [@​j-piasecki](https://togithub.com/j-piasecki) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2698](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2698) - Add macOS app icon by [@​jfedak](https://togithub.com/jfedak) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2723](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2723) - Bump follow-redirects from 1.15.3 to 1.15.4 in /e2e/web-tests by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/software-mansion/react-native-gesture-handler/pull/2719](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2719) #### New Contributors - [@​mrousavy](https://togithub.com/mrousavy) made their first contribution in [https://github.com/software-mansion/react-native-gesture-handler/pull/2690](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2690) - [@​HeroBanana](https://togithub.com/HeroBanana) made their first contribution in [https://github.com/software-mansion/react-native-gesture-handler/pull/2588](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2588) - [@​fxamauri](https://togithub.com/fxamauri) made their first contribution in [https://github.com/software-mansion/react-native-gesture-handler/pull/2712](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2712) - [@​jfedak](https://togithub.com/jfedak) made their first contribution in [https://github.com/software-mansion/react-native-gesture-handler/pull/2713](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2713) - [@​computerjazz](https://togithub.com/computerjazz) made their first contribution in [https://github.com/software-mansion/react-native-gesture-handler/pull/2715](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2715) **Full Changelog**: software-mansion/react-native-gesture-handler@2.14.0...2.15.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 5pm,every weekend" in timezone America/Los_Angeles, Automerge - "after 5pm,every weekend" in timezone America/Los_Angeles. 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/valora-inc/wallet). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: valora-bot <[email protected]>
Description
Contains osx (MacOS) support, not completed but partly. Would be nice if we can build on top of this PR.
In order to make Gesture Handler work on macOS, we needed to:
Test plan
In theory every component made in example (ios) should work for osx, a few are ported to MacOSExample to test gestures.
This PR has been tested both on iOS (example app) and macOS (MacOSExample app).
Screen.Recording.2023-11-08.at.15.03.44.mov
Screen.Recording.2023-11-08.at.15.04.03.mov