From cc14bc4515279b9857bc10f08d485035b6e3bad6 Mon Sep 17 00:00:00 2001 From: tisilent Date: Wed, 13 Sep 2023 17:34:31 +0800 Subject: [PATCH] using isCursorInitialized for domrenderer --- src/browser/renderer/dom/DomRendererRowFactory.ts | 2 +- test/playwright/SharedRendererTests.ts | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/browser/renderer/dom/DomRendererRowFactory.ts b/src/browser/renderer/dom/DomRendererRowFactory.ts index 614b2301..6ab68e7d 100644 --- a/src/browser/renderer/dom/DomRendererRowFactory.ts +++ b/src/browser/renderer/dom/DomRendererRowFactory.ts @@ -218,7 +218,7 @@ export class DomRendererRowFactory { } } - if (!this._coreService.isCursorHidden && isCursorCell) { + if (!this._coreService.isCursorHidden && isCursorCell && this._coreService.isCursorInitialized) { classes.push(RowCss.CURSOR_CLASS); if (this._coreBrowserService.isFocused) { if (cursorBlink) { diff --git a/test/playwright/SharedRendererTests.ts b/test/playwright/SharedRendererTests.ts index e1e56bc9..1e7648bb 100644 --- a/test/playwright/SharedRendererTests.ts +++ b/test/playwright/SharedRendererTests.ts @@ -1147,6 +1147,17 @@ export function injectSharedRendererTests(ctx: ISharedRendererTestContext): void await ctx.value.proxy.selectAll(); await pollFor(ctx.value.page, () => getCellColor(ctx.value, 1, 1), [0, 0, 255, 255]); }); + test('#4790: cursor should not be displayed before focusing', async () => { + const theme: ITheme = { + cursor: '#0000FF' + }; + await ctx.value.page.evaluate(`window.term.options.theme = ${JSON.stringify(theme)};`); + await pollFor(ctx.value.page, () => getCellColor(ctx.value, 1, 1), [0, 0, 0, 0]); + await ctx.value.proxy.focus(); + await pollFor(ctx.value.page, () => getCellColor(ctx.value, 1, 1), [0, 0, 255, 255]); + await ctx.value.proxy.blur(); + await pollFor(ctx.value.page, () => getCellColor(ctx.value, 1, 1), [0, 0, 255, 255]); + }); }); }