Pārlūkot izejas kodu

Better way to fix Linux key paste issue in tab

Menghuan1918 7 mēneši atpakaļ
vecāks
revīzija
47ecf6ab86
1 mainītis faili ar 11 papildinājumiem un 3 dzēšanām
  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.stopPropagation();
                     event.preventDefault();
                     event.preventDefault();
                     // 阻止 Linux 中键粘贴
                     // 阻止 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;
                     break;
                 }
                 }
                 target = target.parentElement;
                 target = target.parentElement;
             }
             }
-
         });
         });
         this.headersElement.addEventListener("mousewheel", (event: WheelEvent) => {
         this.headersElement.addEventListener("mousewheel", (event: WheelEvent) => {
             this.headersElement.scrollLeft = this.headersElement.scrollLeft + event.deltaY;
             this.headersElement.scrollLeft = this.headersElement.scrollLeft + event.deltaY;