Files
hyungi_document_server/frontend
Hyungi Ahn 7f3955c020 fix(study): ㄱ→ㅏ hang + 1사분면 확대 회귀 — pointerleave 안전망 + viewport meta
증상:
- ㄱ stroke 후 ㅏ stroke 가 안 그려짐. iOS Safari 가 setPointerCapture 를 silently
  풀어 pointerup 이 캔버스로 routing 안 되는 케이스에서 isDrawing 락 잔존 → 다음
  pointerdown 이 onPointerDown:298 가드 에서 거부.
- 캔버스가 1사분면으로 확대되는 OS 핀치줌. element-level gesturestart 차단이 일부
  iOS 빌드에서 흡수만 되고 줌이 진행.

A. pointerleave 안전망 (HandwriteCanvas.svelte)
  - onpointerleave={endStroke} 복구.
  - endStroke 내 pointerleave 분기: canvas.hasPointerCapture true 면 ignore (정상
    흐름, pointerup 곧 도착). false 면 안전망 finalize → isDrawing 락 해제.
  - capture 가 정상 잡힌 케이스엔 영향 없음 (leave 자체가 안 옴).

B. viewport meta 강화 ([id]/+page.svelte)
  - maximum-scale=1, user-scalable=no 추가. iOS 13+ 에서 OS 핀치줌 원천 차단.
  - 페이지별 meta 라 다른 페이지 접근성 영향 0. zoom UI 는 Phase 2.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 12:16:45 +09:00
..