On iOS Safari/PWA, tapping the terminal opened the keyboard but typed keys produced no output. Focus landed on a 1×1 opacity-0.01 helper textarea overlapped by the xterm canvas, and capture-phase gesture handlers re-focused on every tap — a combination iOS silently drops input events on. - On touch-primary devices, expand .xterm-helper-textarea to cover the entire terminal surface (100% × 100%, opacity 0, z-index 2) via @media (hover: none) and (pointer: coarse). Taps land on the textarea directly, so iOS grants keyboard + input events natively. - Desktop keeps the 1×1 rule so xterm's canvas-level drag-to-select and mouse tracking continue to work. - Revert onPointerDownCapture/onTouchStartCapture/onClickCapture back to bubble-phase onPointerDown/onTouchStart; capture phase was confusing iOS's focus attribution and is no longer needed now that taps reach the textarea directly. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
36 KiB
36 KiB