fix(run): stop the terminal wheel from typing arrow keys, re-attach dropped sockets
Three separate reasons the Workspace terminal looked unscrollable: - xterm falls back, on an alt-screen buffer whose program has not enabled mouse tracking, to translating each wheel notch into a cursor-key press. Inside a `claude` pane that reads as arrow up/down, so scrolling walked the prompt history. A custom wheel handler returning false suppresses only that emulation branch; real mouse reports come from a separate listener xterm registers when the program does request wheel events. - TerminalView never reconnected, so a server restart left the pane frozen on its last painted frame — still live-looking, but swallowing every keystroke and mouse report. It now re-attaches 1.5s after an unexpected close and stops only on the server's `exit` frame; tmux keeps the session, so the re-attach repaints in full. - tmux repaints the whole pane, so xterm's own scrollback is always empty and its viewport scrollbar renders as a groove with no thumb that cannot move. Hidden, since scrolling there goes through mouse reports, not the DOM.
This commit is contained in:
@@ -155,6 +155,18 @@
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* The run console's terminal attaches to tmux, which repaints the whole pane
|
||||
on every frame — xterm's own scrollback stays empty forever, so its
|
||||
viewport scrollbar renders as a groove with no thumb that never moves.
|
||||
Scrolling there goes through mouse reports to the pane's program, not the
|
||||
DOM, so hide the dead affordance. */
|
||||
.xterm-viewport {
|
||||
scrollbar-width: none;
|
||||
}
|
||||
.xterm-viewport::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Visually hidden until focused — first Tab lands here before the sidebar. */
|
||||
.skip-to-content {
|
||||
position: absolute;
|
||||
|
||||
Reference in New Issue
Block a user