From 3736a93c2c6d63b96b79c5b5ce41c3da85d46959 Mon Sep 17 00:00:00 2001 From: Martynas Bagdonas Date: Tue, 26 Oct 2021 12:12:03 +0300 Subject: [PATCH] Add a work-around for mouseup events that are never triggered in reader --- chrome/content/zotero/xpcom/reader.js | 20 ++++++++++++++++++++ pdf-reader | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/chrome/content/zotero/xpcom/reader.js b/chrome/content/zotero/xpcom/reader.js index 081d4a5b3f..134e9a72e4 100644 --- a/chrome/content/zotero/xpcom/reader.js +++ b/chrome/content/zotero/xpcom/reader.js @@ -699,6 +699,26 @@ class ReaderTab extends ReaderInstance { }); this._iframe.setAttribute('tooltip', 'html-tooltip'); + + // This is a nonsense work-around to trigger mouseup and pointerup + // events in PDF reader iframe when mouse up happens over another iframe + // i.e. note-editor. There should be a better way to solve this + this._window.addEventListener('pointerup', (event) => { + if (this._window.Zotero_Tabs.selectedID === this.tabID + && event.target + && event.target.closest + && !event.target.closest('#outerContainer')) { + let evt = new this._iframeWindow.CustomEvent('mouseup', { bubbles: false }); + evt.clientX = event.clientX; + evt.clientY = event.clientY; + this._iframeWindow.dispatchEvent(evt); + + evt = new this._iframeWindow.CustomEvent('pointerup', { bubbles: false }); + evt.clientX = event.clientX; + evt.clientY = event.clientY; + this._iframeWindow.dispatchEvent(evt); + } + }); } close() { diff --git a/pdf-reader b/pdf-reader index a1804bbbd3..c939b9a572 160000 --- a/pdf-reader +++ b/pdf-reader @@ -1 +1 @@ -Subproject commit a1804bbbd3c03f3984d7c5d0a5f214d7de48643c +Subproject commit c939b9a572696f60a4334eadc2feefc155bdf7f8