diff --git a/css/xterm.css b/css/xterm.css index 4e1aad14..ac8cd45b 100644 --- a/css/xterm.css +++ b/css/xterm.css @@ -174,7 +174,7 @@ text-decoration: line-through; } -.xterm-screen canvas .xterm-decoration { +#terminal-container > div > div.xterm-screen > div.xterm-decoration { z-index: 6; position: absolute; } diff --git a/demo/client.ts b/demo/client.ts index 0ca4d4bf..193b78b0 100644 --- a/demo/client.ts +++ b/demo/client.ts @@ -531,5 +531,4 @@ function decoration() { const marker = term.addMarker(1); const decoration = term.registerDecoration({ marker }); decoration.element.style.backgroundColor = 'red'; - decoration.element.style.position = 'absolute'; -} +} \ No newline at end of file diff --git a/test/api/Terminal.api.ts b/test/api/Terminal.api.ts index 1fe75456..c10094ca 100644 --- a/test/api/Terminal.api.ts +++ b/test/api/Terminal.api.ts @@ -731,6 +731,28 @@ describe('API Integration Tests', function(): void { await pollFor(page, `window.term._core._renderService.dimensions.actualCellWidth > 0`, true); }); + describe.only('registerDecoration', () => { + it('should register a decoration', async () => { + await openTerminal(page); + await page.evaluate(`window.marker = window.term.addMarker(1)`); + await page.evaluate(`window.decoration = window.term.registerDecoration({ marker: window.marker });`); + assert.notEqual(await page.evaluate(`document.querySelector('.xterm-screen .xterm-decoration')`), undefined); + }); + it('should return undefined when the marker has already been disposed of', async () => { + await openTerminal(page); + await page.evaluate(`window.marker = window.term.addMarker(1)`); + await page.evaluate(`window.marker.dispose()`); + assert.equal(await page.evaluate(`window.decoration = window.term.registerDecoration({ marker: window.marker });`), undefined); + assert.equal(await page.evaluate(`document.querySelector('.xterm-screen .xterm-decoration')`), undefined); + }); + it.skip('should throw when a negative x offset is provided', async () => { + await openTerminal(page); + await page.evaluate(`window.marker = window.term.addMarker(1)`); + assert.throws(async () => await page.evaluate(`window.decoration = window.term.registerDecoration({ marker: window.marker, x: -2 });`)); + assert.equal(await page.evaluate(`document.querySelector('.xterm-screen .xterm-decoration')`), undefined); + }); + }); + describe('registerLinkProvider', () => { it('should fire provideLinks when hovering cells', async () => { await openTerminal(page, { rendererType: 'dom' });