Repository navigation
fix: dispatch image presses from iOS table cells - #959
Merged
hryhoriiK97 merged 4 commits intoOct 10, 2026
Merged
Conversation
juliusmarminge
marked this pull request as ready for review
October 8, 2026 18:49
- resolve the tapped grid item once and dispatch on its kind; links keep nearest-glyph hits, only images require the tap inside their bounds - expose imageAtPoint: next to linkAtPoint: and test through public API - fire onImagePress for images in blockquote paragraphs, not only tables - wrap the image callback with weak self like the link callbacks - drop the "not fired inside GFM tables" note from the docs - dedupe the Maestro flow into a subflow; "Preview" headers keep the "Image" alert title unambiguous Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Collaborator
|
Thanks! The core fix is right: the image attributes were already registered by the render context, the table cell renderer just never applied them. I pushed a follow-up commit (1865ffa) with a few adjustments:
Verified locally: build and XCTest suite pass on an iPhone 17 simulator (iOS 26.5), and taps on root, nested-quote, linked and quoted-paragraph images behave as expected in the example app. Heads-up: this and #958 both add entries to the example |
Keep the PR to the library fix and docs: remove the XCTest cases, the Maestro flow, the Playground alert they drove, and the test-only imageAtPoint: accessor. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
hryhoriiK97
approved these changes
Oct 10, 2026
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.
What/Why?
Tapping an unlinked image in an iOS GFM table does not invoke the existing
onImagePresscallback. Preserve image URL/alt attributes, hit-test actual glyph bounds and forward presses through root and nested blockquote tables. Linked images retain link priority; cell padding does not activate an adjacent image.Fixes #952. The callback lets the application open its existing viewer; this PR does not add a viewer or a media API.
Testing
Same controlled table fixture and viewport, upstream base before and PR production sources after:
Before:
After:
Before interaction:
After interaction:
The captures use a local public example asset; Maestro separately uses a public image URL and verifies nested tables. Local native proof uses an isolated upstream example checkout on an iPhone 17 Pro simulator running iOS 27. Xcode used two jobs, disabled signing/index/debug symbols, and task-owned XCFrameworks retained the arm64 simulator slice to fit the host. These are host resource settings, not workflow or production changes. No Android device, VoiceOver traversal, or full Maestro-suite pass is claimed.
Base: b80be973. Current head: ae431a2d. CI is incomplete. The current Android unit-test job failed before tests while installing NDK 27.1.12297006: the downloaded archive was not a ZIP. The production Android build passed on this head. A retry needs upstream Actions write access, which this account does not have. iOS jobs remain queued.
PR Checklist
Model: GPT-6.1. Harness: Codex in T3 Code.