From 6a37009b02c383a7121046a42334d80b8147e845 Mon Sep 17 00:00:00 2001 From: Varun Patil Date: Thu, 23 Feb 2023 22:18:06 -0800 Subject: [PATCH] viewer: prevent sidebar typing leak (fix #437) --- src/components/viewer/Viewer.vue | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/components/viewer/Viewer.vue b/src/components/viewer/Viewer.vue index bf3ff8d1..2ff0e97b 100644 --- a/src/components/viewer/Viewer.vue +++ b/src/components/viewer/Viewer.vue @@ -1029,16 +1029,20 @@ export default defineComponent({ }, handleAppSidebarOpen() { - if (this.show && this.photoswipe) { - const sidebar: HTMLElement = - document.querySelector("aside.app-sidebar"); - if (sidebar) { - this.sidebarWidth = sidebar.offsetWidth - 2; - } + if (!(this.show && this.photoswipe)) return; - this.sidebarOpen = true; - this.updateSizeWithoutAnim(); + const sidebar: HTMLElement = document.querySelector("aside.app-sidebar"); + if (sidebar) { + this.sidebarWidth = sidebar.offsetWidth - 2; + + // Stop sidebar typing from leaking to viewer + sidebar.addEventListener("keydown", (e) => { + if (e.key.length === 1) e.stopPropagation(); + }); } + + this.sidebarOpen = true; + this.updateSizeWithoutAnim(); }, handleAppSidebarClose() {