fix(maestro): bind terminal touch scroll to .xterm
ci / web (push) Successful in 38s
ci / rust (push) Successful in 4m8s
ci / flake (push) Successful in 6m39s

The touch handlers sat on `.xterm-viewport`, but xterm appends the
absolutely-positioned viewport before the `position: relative` screen, so
`.xterm-screen` paints over it and takes every touch. The viewport is not an
ancestor of the screen, so the listeners never fired and mobile drags did
nothing. Moves them, and `touch-action: none`, to `.xterm`.
This commit is contained in:
Miguel Palhas
2026-09-01 13:10:18 +01:00
parent c67fa2bd4e
commit 766eabbcb6
2 changed files with 12 additions and 8 deletions
+6 -4
View File
@@ -1332,10 +1332,12 @@ input.leaf-rename:focus {
.attach-body .xterm .xterm-viewport {
overflow-y: auto;
scrollbar-width: none;
/* Maestro drives scrollback from touchmove (see attach.ts). `pan-y` hands
the gesture to the browser, which may cancel the event stream before the
terminal sees it; `none` keeps a drag inside the terminal under our
control while the rest of the page retains native scrolling. */
}
/* Maestro drives scrollback from touchmove (see attach.ts), so the browser must
not claim the gesture. On `.xterm`, not the viewport: `.xterm-screen` paints
over the viewport and is what a finger lands on. */
.attach-body .xterm {
touch-action: none;
}