Fix browser-custom-element.js event handler error

Send real mouse/pointer events so that the CE can call, e.g.,
preventClickEvent().
This commit is contained in:
Abe Jellinek 2023-06-28 13:10:21 -04:00 committed by Dan Stillman
parent a7f1235fd1
commit 61f21f48e8

View file

@ -952,18 +952,25 @@ class ReaderTab extends ReaderInstance {
&& 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;
let evt = new this._iframeWindow.MouseEvent('mouseup', { ...event, bubbles: false });
this._iframeWindow.dispatchEvent(evt);
if (evt.defaultPrevented) {
event.preventDefault();
return;
}
if (evt.clickEventPrevented()) {
event.preventClickEvent();
}
evt = new this._iframeWindow.CustomEvent('pointerup', { bubbles: false });
evt.clientX = event.clientX;
evt.clientY = event.clientY;
evt = new this._iframeWindow.PointerEvent('pointerup', { ...event, bubbles: false });
this._iframeWindow.dispatchEvent(evt);
if (evt.defaultPrevented) {
event.preventDefault();
}
}
}
catch(e) {
catch (e) {
Zotero.logError(e);
}
});