From 6d66c807d0b3480d4cd9cd72b7c41e9fa3f883f9 Mon Sep 17 00:00:00 2001 From: Menghuan Date: Tue, 10 Dec 2024 08:53:28 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3Linux=E4=B8=AD=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E4=B8=AD=E9=94=AE=E5=85=B3=E9=97=AD=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E9=A1=B5=E6=97=B6=E4=BC=9A=E8=A7=A6=E5=8F=91=E7=B2=98=E8=B4=B4?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98(#13309)=20(#13395)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * πŸ› Fix Linux key paste issue in tab * Better way to fix Linux key paste issue in tab * Only work on linux * Fix Linux key paste issue in tab --- app/src/layout/Wnd.ts | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/app/src/layout/Wnd.ts b/app/src/layout/Wnd.ts index 6c9043529..9b00bfda3 100644 --- a/app/src/layout/Wnd.ts +++ b/app/src/layout/Wnd.ts @@ -101,11 +101,31 @@ export class Wnd { window.siyuan.menus.menu.remove(); event.stopPropagation(); event.preventDefault(); + const activeElement = document.activeElement; + const pasteHandler = (e: ClipboardEvent) => { + e.preventDefault(); + e.stopPropagation(); + }; + window.addEventListener("paste", pasteHandler, { + capture: true, + once: true + }); + + // ε¦‚ζžœεœ¨ηŸ­ζ—Άι—΄ε†…ζ²‘ζœ‰ paste δΊ‹δ»Άε‘η”Ÿ,移陀监听 + setTimeout(() => { + window.removeEventListener("paste", pasteHandler, { + capture: true + }); + }, 250); + + // δΏζŒεŽŸζœ‰η„¦η‚Ή + if (activeElement instanceof HTMLElement) { + activeElement.focus(); + } break; } target = target.parentElement; } - }); this.headersElement.addEventListener("mousewheel", (event: WheelEvent) => { this.headersElement.scrollLeft = this.headersElement.scrollLeft + event.deltaY;