mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-28 14:15:24 +00:00
fix(session-sharing): synchronize shared SSH terminal dimensions (#1502)
This commit is contained in:
1 parent
c265758cdd
commit
0f6e48a95c
7 files changed
+341
-15
No files matched your search
@@ -135,7 +135,11 @@ export function GuestTerminalView({
|
||||
terminal.open(xtermRef.current);
|
||||
fitAddon.fit();
|
||||
|
||||
const resizeObserver = new ResizeObserver(() => fitAddon.fit());
|
||||
let sharedSize: { cols: number; rows: number } | null = null;
|
||||
const resizeObserver = new ResizeObserver(() => {
|
||||
if (sharedSize) terminal.resize(sharedSize.cols, sharedSize.rows);
|
||||
else fitAddon.fit();
|
||||
});
|
||||
resizeObserver.observe(xtermRef.current);
|
||||
|
||||
let cancelled = false;
|
||||
@@ -163,6 +167,21 @@ export function GuestTerminalView({
|
||||
}
|
||||
|
||||
switch (msg.type) {
|
||||
case "resized": {
|
||||
const { cols, rows } = msg;
|
||||
if (
|
||||
typeof cols === "number" &&
|
||||
typeof rows === "number" &&
|
||||
Number.isInteger(cols) &&
|
||||
Number.isInteger(rows) &&
|
||||
cols > 0 &&
|
||||
rows > 0
|
||||
) {
|
||||
sharedSize = { cols, rows };
|
||||
terminal.resize(cols, rows);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "data":
|
||||
if (typeof msg.data === "string") terminal.write(msg.data);
|
||||
break;
|
||||
|
||||
Reference in new issue
Block a user