From 31de8ea351f73eb2071e36e415ae1970749f91fd Mon Sep 17 00:00:00 2001 From: Aiday Marlen Kyzy Date: Tue, 6 Jan 2026 16:48:24 +0100 Subject: [PATCH] adding trace logs to trace double paste issue (#286158) * adding trace logs to trace double paste issue * adding more logs --- src/vs/editor/browser/controller/editContext/clipboardUtils.ts | 1 + src/vs/editor/contrib/clipboard/browser/clipboard.ts | 3 +++ .../contrib/dropOrPasteInto/browser/copyPasteController.ts | 1 + 3 files changed, 5 insertions(+) diff --git a/src/vs/editor/browser/controller/editContext/clipboardUtils.ts b/src/vs/editor/browser/controller/editContext/clipboardUtils.ts index 3402910c3f2..edfb62977d3 100644 --- a/src/vs/editor/browser/controller/editContext/clipboardUtils.ts +++ b/src/vs/editor/browser/controller/editContext/clipboardUtils.ts @@ -101,6 +101,7 @@ export function computePasteData(e: ClipboardEvent, context: ViewContext, logSer return; } PasteOptions.electronBugWorkaroundPasteEventHasFired = true; + logService.trace('(computePasteData) PasteOptions.electronBugWorkaroundPasteEventHasFired : ', PasteOptions.electronBugWorkaroundPasteEventHasFired); metadata = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text); return getPasteDataFromMetadata(text, metadata, context); } diff --git a/src/vs/editor/contrib/clipboard/browser/clipboard.ts b/src/vs/editor/contrib/clipboard/browser/clipboard.ts index 735d4698f00..751ef28109f 100644 --- a/src/vs/editor/contrib/clipboard/browser/clipboard.ts +++ b/src/vs/editor/contrib/clipboard/browser/clipboard.ts @@ -318,15 +318,18 @@ if (PasteAction) { logService.trace('registerExecCommandImpl (before triggerPaste)'); PasteOptions.electronBugWorkaroundPasteEventHasFired = false; + logService.trace('(before triggerPaste) PasteOptions.electronBugWorkaroundPasteEventHasFired : ', PasteOptions.electronBugWorkaroundPasteEventHasFired); const triggerPaste = clipboardService.triggerPaste(getActiveWindow().vscodeWindowId); if (triggerPaste) { logService.trace('registerExecCommandImpl (triggerPaste defined)'); PasteOptions.electronBugWorkaroundPasteEventLock = false; return triggerPaste.then(async () => { + logService.trace('(triggerPaste) PasteOptions.electronBugWorkaroundPasteEventHasFired : ', PasteOptions.electronBugWorkaroundPasteEventHasFired); if (PasteOptions.electronBugWorkaroundPasteEventHasFired === false) { // Ensure this doesn't run twice, what appears to be happening is // triggerPasteis called once but it's handler is called multiple times // when it reproduces + logService.trace('(triggerPaste) PasteOptions.electronBugWorkaroundPasteEventLock : ', PasteOptions.electronBugWorkaroundPasteEventLock); if (PasteOptions.electronBugWorkaroundPasteEventLock === true) { return; } diff --git a/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.ts b/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.ts index 58a01697617..ad1e8131381 100644 --- a/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.ts +++ b/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.ts @@ -265,6 +265,7 @@ export class CopyPasteController extends Disposable implements IEditorContributi private async handlePaste(e: ClipboardEvent) { PasteOptions.electronBugWorkaroundPasteEventHasFired = true; + this._logService.trace('(handlePaste) PasteOptions.electronBugWorkaroundPasteEventHasFired : ', PasteOptions.electronBugWorkaroundPasteEventHasFired); if (e.clipboardData) { const [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData); const metadataComputed = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);