Merged contacts disable pinch gestures at onset
Aliases: failed pinch · onset merge · pinch onset
What it is
Pinch, rotate, and two-finger pan all need two stable ids in the first frames to record a baseline distance or angle. If the fingers are already merged at landing, the recognizer sees a one-finger press. When they later separate and the blob splits, the baseline is already contaminated: initial distance is near zero, so any subsequent opening reads as a huge zoom. Maps and image viewers that “explode on contact” are often this onset merge, not a mis-tuned scale curve.
Why it happens
A two-finger gesture’s first job is to sample both coordinates and lock a transform origin. A merge denies the second coordinate, so the recognizer either stays out of pinch or spends the one-finger displacement against tap/drag thresholds. The user’s intent is zoom; arbitration treats it as a drag candidate. When the split arrives, the second id enters with a suddenly minted coordinate; if the recognizer locks baseline then, the baseline is too short to be two fingers. Relative change Δd/d0 explodes as d0 approaches 0, and the first scale factor is absurd. Implementations that wait ~50 ms of two-id stability before locking avoid the explosion, at the cost of a sluggish pinch start.
Studying it
Have people plant closed fingers then open into a pinch, against a control group that lands at a natural span. Independent variables are initial finger distance, contact-then-move versus move-on-contact, and baseline-lock policy (first frame / stability window / minimum-span latch). Dependent measures are the fraction recognized as pinch versus drag, the first-frame scale factor, and whether people report “it zooms the instant I touch.” Align camera finger span with event id count to prove the failure is onset merge rather than later tracking loss.
Where it stops holding
Two already-stable fingers closing is an in-progress pinch-out, not an onset merge; that path has a valid baseline. System zoom aids (double-tap zoom, plus/minus buttons) do not need two ids, so merging cannot hurt them. One-finger double-tap-drag zoom is a different machine; onset merge is irrelevant there. On very large targets people plant far apart and onset merge is rare; the problem concentrates on one-handed phone pinches, children’s hands, and pinch targets crammed into a narrow toolbar.
Applying it
- Latch pinch on a minimum baseline: while two-id span is below a multiple of the device merge gap, do not lock zoom and do not spend the one-finger motion as a drag, until they separate or a timeout cancels.
- Give images and maps plus/minus buttons or double-tap zoom as a visible path when two-finger onset fails.
- Put “plant closed, then open” on the gesture QA list; do not only test pinches that start at a comfortable span.
Related
- Same group: C2.19.1 Nearby fingers can be merged into a single reported contact · C2.19.3 Contact splitting can produce a sudden coordinate jump · C2.19.4 Split thresholds depend on sensor precision and contact area
- Nearby: C3.08 Pinch-to-zoom out · C3.09 Spread-to-zoom in
- Search terms:
pinch onset·baseline distance·contact merging