Repository navigation
Conversation
XCTest synthesized touches carry no digitizer edge mask, so on an iOS simulator gesture swipe left-edge and right-edge never started a UIScreenEdgePanGestureRecognizer or the navigation edge pop gesture. Edge swipe presets now plan a screen-edge contact. On an iOS simulator the runner dispatches it as one HID touch with the edge mask, through the touchscreen service of the app's display. Other gestures and physical devices keep their current paths. Fixes callstack#4208
|
@gronxb is attempting to deploy a commit to the Callstack Team on Vercel. A member of the Team first needs to authorize it. |
Contributor
There was a problem hiding this comment.
All reported issues were addressed across 15 files
Reply with feedback, questions, or to request a fix.
View guided diff | Re-trigger cubic
A frame that failed to build was dropped while the gesture still reported success. Fail before touch-down, lift early after a failed move, and return the reason instead.
The edge recognizer on a rotated panel, such as the iPhone Duo inner panel, never began: FromEdgeFlat/Tip touches carry no swipe direction, and a fast first move left the edge region in one frame. A hand swipe on the simulator carries SwipeLocked and the native swipe direction on every frame and starts slowly. Send the same mask, ease the contact in along the planned path, and use the display's oldest touchscreen service when a window adds another.
Contributor
There was a problem hiding this comment.
All reported issues were addressed across 1 file (changes from recent commits).
Reply with feedback, questions, or to request a fix.
View guided diff | Re-trigger cubic
A service whose registry ID could not be read still counted as a match, so a later valid service could leave the sender at 0.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
On iOS simulators,
gesture swipe left-edge/right-edgenever started edge recognizers or the navigation edge pop: XCTest touches carry no edge information, even at x = 0.Edge presets now plan a
screen-edgecontact (contactOrigin). On an iOS simulator, the runner sends that plan as one HID touch the way a hand swipe arrives:SwipeLockedplus the native swipe direction on every frame, through the oldest touchscreen service of the app's display (the lit panel on a foldable). The contact eases in along the planned path, because a first move that leaves the edge region in one frame fails the recognizer on a wide panel. A frame whose HID event cannot be created fails the command, and an unreadable touchscreen service is skipped. Other gestures and physical devices keep their paths. The edge path does not keependpoint-hold.15 files. Fixes #4208.
Validation
Tested at
c57133a40, base035c2b6ca.pnpm check:affected --run --head c57133a40: passed,exactCommit=true. Coverage, swift-runner-ios/macos, replay and web lanes are GitHub-authoritative.AGENT_DEVICE_XCUITEST_INCLUDE_UNIT_TESTS=1)../repro.sh:gesture swipe rightandgesture panstill arrive as plain touches.Open risk: physical devices are unchanged and untested.