v0.5.9
tagged this
24 May 13:26
Two independent paths for peer libraries (Etcher annotations, ML
overlays, comment threads) to suppress fresco's `tap` event when
the tap was actually meant for them. Backwards-compatible — both
default to off; existing consumers see no change.
- handle.suppressNextTap(ms?) on viewer + canvas handles.
Default window 250 ms. Any tap landing within the window is
swallowed; the window is additive (re-calls extend the
deadline to the later of the two). Etcher calls this after
committing a freshly-drawn shape so the iOS-synthesized
mousedown/mouseup → tap that follows doesn't race the
consumer's tap-zone navigation.
- [data-fresco-suppress-tap] element attribute. Any element
under the tap point with this attribute (or whose ancestor
has it) suppresses the emit. Detected via
document.elementsFromPoint, so `pointer-events: none`
elements (like .etcher-shape) are still found. Etcher
stamps it on every shape element from 0.4.11+ so tapping an
existing annotation pins the tooltip without bubbling to
consumer-side tap-zone navigation.
Both paths are independent — consumers can use either, both,
or neither.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>