-
-
-
Previous Value Current Value Open
Closed
| Type |
Improvement
|
| Priority |
Normal
|
| Assignee | |
| Labels |
No labels
|
Issue Votes (0)
| Previous Value | Current Value |
|---|---|
Open | Closed |
| Type |
Improvement
|
| Priority |
Normal
|
| Assignee | |
| Labels |
No labels
|
Goal
Make one-finger vertical swipes on the workspace terminal scroll tmux (and other mouse-aware apps) the same way mouse-wheel scrolling does today.
Scope
server-core/.../web/component/terminal/terminal.js), plus updating the scroll tip onWorkspaceTerminalPage.SHELL_INPUT/ mouse-protocol path already works for wheel; touch just never reaches it.Why this location
terminal.jscreates a stock xterm.js instance and forwardsonDatato the WebSocket. Wheel scrolling already works because xterm.js turnswheelevents into mouse-protocol sequences when the app enables mouse reporting. The bundled xterm does listen for touch, but that path is for its own gesture handling, not for synthesizingwheel/ mouse-wheel buttons for apps like tmux. OneDev should bridge that gap in our wrapper rather than forking xterm.Approach
xterm.open(...), attachtouchstart/touchmove/touchend/touchcancellisteners on the terminal DOM element (non-passive where we needpreventDefault).deltaYfrom touch movementWheelEvents (deltaMode: DOM_DELTA_PIXEL) on the xterm screen element so the existing mouse-tracking / alt-buffer wheel handlers run unchangedpreventDefaultonly after a vertical scroll gesture is recognized, so we do not break tap-to-focusTerminalPanel, WebSocket messages) unchanged; synthesized wheel input continues to flow asSHELL_INPUTvia xterm's normal mouse encoding.Ctrl-b[copy-mode hint as a fallback.Edge cases / acceptance
mouse onTest plan
TerminalPanel/terminal.js.Follow-up (optional, not required for first cut)
If this plan looks right, we can open an enhancement issue (or retarget this one) and implement it.