瀏覽代碼

Better way to fix Linux key paste issue in tab

Menghuan1918 7 月之前
父節點
當前提交
47ecf6ab86
共有 1 個文件被更改,包括 11 次插入3 次删除
  1. 11 3
      app/src/layout/Wnd.ts

+ 11 - 3
app/src/layout/Wnd.ts

@@ -102,14 +102,22 @@ export class Wnd {
                     event.stopPropagation();
                     event.preventDefault();
                     // 阻止 Linux 中键粘贴
-                    setTimeout(() => {
-                        window.getSelection().removeAllRanges();
+                    const activeElement = document.activeElement;
+                    window.addEventListener("paste", (e) => {
+                        e.preventDefault(); 
+                        e.stopPropagation();
+                    }, {
+                        capture: true,
+                        once: true
                     });
+                    // 保持原有焦点
+                    if (activeElement instanceof HTMLElement) {
+                        activeElement.focus();
+                    }
                     break;
                 }
                 target = target.parentElement;
             }
-
         });
         this.headersElement.addEventListener("mousewheel", (event: WheelEvent) => {
             this.headersElement.scrollLeft = this.headersElement.scrollLeft + event.deltaY;