解决Linux中使用中键关闭标签页时会触发粘贴的问题(#13309) (#13395)

* 🐛 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
This commit is contained in:
Menghuan 2024-12-10 08:53:28 +08:00 committed by GitHub
parent b9f3c1c03c
commit 6d66c807d0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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;