diff --git a/demo/client.ts b/demo/client.ts index bde5ca72..85a1104e 100644 --- a/demo/client.ts +++ b/demo/client.ts @@ -119,6 +119,8 @@ const actionElements = { findResults: document.querySelector('#find-results') }; const paddingElement = document.getElementById('padding') as HTMLInputElement; +const selectionBackgroundElement = document.getElementById('selectionBackground') as HTMLInputElement; +const selectionInactiveBackgroundElement = document.getElementById('selectionInactiveBackground') as HTMLInputElement; const xtermjsTheme = { foreground: '#F8F8F8', @@ -146,6 +148,18 @@ function setPadding(): void { addons.fit.instance.fit(); } +function setSelectionInactiveBackground(): void { + const theme = { ...term.options.theme }; + theme.selectionInactiveBackground = selectionInactiveBackgroundElement.value; + term.options.theme = theme; +} + +function setSelectionBackground(): void { + const theme = { ...term.options.theme }; + theme.selectionBackground = selectionBackgroundElement.value; + term.options.theme = theme; +} + function getSearchOptions(): ISearchOptions { return { regex: (document.getElementById('regex') as HTMLInputElement).checked, @@ -333,6 +347,8 @@ function createTerminal(): void { resizeObserver.observe(terminalContainer); addDomListener(paddingElement, 'change', setPadding); + addDomListener(selectionInactiveBackgroundElement, 'change', setSelectionInactiveBackground); + addDomListener(selectionBackgroundElement, 'change', setSelectionBackground); addDomListener(actionElements.findNext, 'keydown', (e) => { if (e.key === 'Enter') { diff --git a/demo/index.html b/demo/index.html index 6d9be706..594f0ee7 100644 --- a/demo/index.html +++ b/demo/index.html @@ -75,6 +75,14 @@ +
+ + +
+
+ + +

Test

diff --git a/src/browser/renderer/dom/DomRenderer.ts b/src/browser/renderer/dom/DomRenderer.ts index 7413776c..98213e08 100644 --- a/src/browser/renderer/dom/DomRenderer.ts +++ b/src/browser/renderer/dom/DomRenderer.ts @@ -299,6 +299,7 @@ export class DomRenderer extends Disposable implements IRenderer { public handleBlur(): void { this._rowContainer.classList.remove(FOCUS_CLASS); + this.renderRows(0, this._bufferService.rows - 1); } public handleFocus(): void {