fix: container-level capture touch with direct viewport.scrollTop manipulation

- Attach capture-phase touch listeners to .terminal-container (parent of xterm)
- On vertical swipe: e.preventDefault() blocks page scroll, then directly
  adjust .xterm-viewport.scrollTop by the swipe delta
- This bypasses term.scrollLines() API and directly manipulates the DOM
  element that xterm.js watches via its internal scroll handler
- Remove all CSS touch-action overrides — container handles it in JS
This commit is contained in:
Alex Blank
2026-05-29 20:23:19 +02:00
parent 874873541d
commit 98b9d612fa
2 changed files with 65 additions and 38 deletions
-10
View File
@@ -3713,16 +3713,6 @@ a.nav-item,
/* xterm.js manages its own scrolling and viewport dimensions */
/* Mobile: allow native vertical touch panning on xterm viewport */
.terminal-wrapper.mobile .xterm .xterm-viewport {
touch-action: pan-y;
overflow-y: scroll !important;
-webkit-overflow-scrolling: touch !important;
overscroll-behavior-y: contain;
transform: translate3d(0, 0, 0);
scroll-behavior: smooth;
}
/* Special Keys Strip */
.special-keys-strip {
flex-shrink: 0;