fix(maestro): bind terminal touch scroll to .xterm
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:
+6
-4
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user