From be685a293c148d8181e89fb433f5ee917ab8bad2 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Sat, 10 Aug 2024 12:20:50 +0200 Subject: [PATCH] Remove the sidebar resizing event listeners with an `AbortController` --- web/pdf_sidebar.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/web/pdf_sidebar.js b/web/pdf_sidebar.js index d2b48aa77..b85a0372a 100644 --- a/web/pdf_sidebar.js +++ b/web/pdf_sidebar.js @@ -69,9 +69,7 @@ const UI_NOTIFICATION_CLASS = "pdfSidebarNotification"; class PDFSidebar { #isRTL = false; - #mouseMoveBound = this.#mouseMove.bind(this); - - #mouseUpBound = this.#mouseUp.bind(this); + #mouseAC = null; #outerContainerWidth = null; @@ -422,9 +420,12 @@ class PDFSidebar { // in order to improve responsiveness and to avoid visual glitches. outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); - window.addEventListener("mousemove", this.#mouseMoveBound); - window.addEventListener("mouseup", this.#mouseUpBound); - window.addEventListener("blur", this.#mouseUpBound); + this.#mouseAC = new AbortController(); + const opts = { signal: this.#mouseAC.signal }; + + window.addEventListener("mousemove", this.#mouseMove.bind(this), opts); + window.addEventListener("mouseup", this.#mouseUp.bind(this), opts); + window.addEventListener("blur", this.#mouseUp.bind(this), opts); }); eventBus._on("resize", evt => { @@ -505,9 +506,8 @@ class PDFSidebar { // ... and ensure that rendering will always be triggered. this.eventBus.dispatch("resize", { source: this }); - window.removeEventListener("mousemove", this.#mouseMoveBound); - window.removeEventListener("mouseup", this.#mouseUpBound); - window.removeEventListener("blur", this.#mouseUpBound); + this.#mouseAC?.abort(); + this.#mouseAC = null; } }