update at 2026-03-04 13:25:26

This commit is contained in:
douboer@gmail.com
2026-03-04 13:25:26 +08:00
parent 7d2be3d67d
commit 5fbfdc651f
44 changed files with 84 additions and 1 deletions

View File

@@ -0,0 +1,28 @@
const fs = require('fs');
let code = fs.readFileSync('src/components/TerminalPanel.vue', 'utf8');
// The place where we can attach is right after viewportScroller is queried.
// Let's find viewportScroller assignment.
const attachCode = `
viewportScroller = containerRef.value.querySelector(".xterm-viewport");
if (viewportScroller) {
// ---- [VIEWPORT DEBUG START] ----
['touchstart', 'touchmove', 'touchend', 'touchcancel'].forEach(type => {
viewportScroller.addEventListener(type, (event) => {
console.log(\`[Viewport Event] \${type}\`, {
target: (event.target as Node)?.nodeName,
eventPhase: event.eventPhase,
cancelable: event.cancelable,
defaultPrevented: event.defaultPrevented,
touches: (event as TouchEvent).touches?.length
});
}, { capture: true, passive: false });
});
// ---- [VIEWPORT DEBUG END] ----
}
`;
code = code.replace(/viewportScroller = containerRef\.value\.querySelector\("\.xterm-viewport"\);\n\s*if \(\!viewportScroller\) \{/m, attachCode + "\n if (!viewportScroller) {");
fs.writeFileSync('src/components/TerminalPanel.vue', code);