diff --git a/src/lib/components/studio/terminal.svelte b/src/lib/components/studio/terminal.svelte index f97d7cc94..58e933fbf 100644 --- a/src/lib/components/studio/terminal.svelte +++ b/src/lib/components/studio/terminal.svelte @@ -8,6 +8,7 @@ synapse: Synapse; }; let { height, synapse }: Props = $props(); + let resizeTimeout: ReturnType | null = null; const terminal: Action = (node) => { const init = async () => { @@ -41,14 +42,18 @@ const { cols, rows } = fitAddon.proposeDimensions(); if (term.cols === cols && term.rows === rows) return; if (!Number.isInteger(cols) || !Number.isInteger(rows)) return; - term.resize(cols - 3, rows); - synapse.dispatch('terminal', { - operation: 'updateSize', - params: { - rows, - cols: cols - 3 - } - }); + term.resize(cols - 1, rows); + + if (resizeTimeout) clearTimeout(resizeTimeout); + resizeTimeout = setTimeout(() => { + synapse.dispatch('terminal', { + operation: 'updateSize', + params: { + rows, + cols: cols - 1 + } + }); + }, 200); }); observer.observe(node); }; diff --git a/src/lib/layout/shellStudio.svelte b/src/lib/layout/shellStudio.svelte index 97b2a82aa..2ba26f047 100644 --- a/src/lib/layout/shellStudio.svelte +++ b/src/lib/layout/shellStudio.svelte @@ -624,5 +624,6 @@ .editor-wrapper { flex-grow: 1; padding-inline: var(--space-4); + width: 0; }