From 2d786910c87e3696488b499ccaa3a18cc5801e73 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sun, 3 Jun 2018 11:09:59 +0100 Subject: [PATCH] Correctly set cols/rows --- demo/main.js | 21 +++++++++++++++++---- src/Terminal.ts | 2 +- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/demo/main.js b/demo/main.js index da36ee98..ef4a0437 100644 --- a/demo/main.js +++ b/demo/main.js @@ -139,10 +139,9 @@ function createTerminal() { // fit is called within a setTimeout, cols and rows need this. setTimeout(function () { - console.log(term.cols, term.getOption('cols')); initOptions(term); - // colsElement.value = term.cols; - // rowsElement.value = term.rows; + document.getElementById(`opt-cols`).value = term.cols; + document.getElementById(`opt-rows`).value = term.rows; paddingElement.value = 0; // Set terminal size again to set the specific dimensions on the demo @@ -280,7 +279,21 @@ function initOptions(term) { const input = document.getElementById(`opt-${o}`); input.addEventListener('change', () => { console.log('change', o, input.value); - term.setOption(o, input.value); + if (o === 'cols' || o === 'rows') { + updateTerminalSize(); + } else { + term.setOption(o, parseInt(input.value, 10)); + } }); }); } + +function updateTerminalSize() { + var cols = parseInt(document.getElementById(`opt-cols`).value, 10); + var rows = parseInt(document.getElementById(`opt-rows`).value, 10); + var width = (cols * term.renderer.dimensions.actualCellWidth + term.viewport.scrollBarWidth).toString() + 'px'; + var height = (rows * term.renderer.dimensions.actualCellHeight).toString() + 'px'; + terminalContainer.style.width = width; + terminalContainer.style.height = height; + term.fit(); +} diff --git a/src/Terminal.ts b/src/Terminal.ts index 02d0ff4a..7d4d9b46 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -97,7 +97,7 @@ const WRITE_BATCH_SIZE = 300; /** * The set of options that only have an effect when set in the Terminal constructor. */ -const CONSTRUCTOR_ONLY_OPTIONS = ['cols', 'rows', 'experimentalCharAtlas']; +const CONSTRUCTOR_ONLY_OPTIONS = ['cols', 'rows']; const DEFAULT_OPTIONS: ITerminalOptions = { cols: 80,