JS - Fix mouse event names

- fix issue #12895
This commit is contained in:
Calixte Denizet 2021-01-23 19:09:26 +01:00
parent 7102e4a5c3
commit 34d2e72df2
4 changed files with 20 additions and 22 deletions

View File

@ -370,8 +370,8 @@ class LinkAnnotationElement extends AnnotationElement {
parameters.data.isTooltipOnly || parameters.data.isTooltipOnly ||
(parameters.data.actions && (parameters.data.actions &&
(parameters.data.actions.Action || (parameters.data.actions.Action ||
parameters.data.actions.MouseUp || parameters.data.actions["Mouse Up"] ||
parameters.data.actions.MouseDown)) parameters.data.actions["Mouse Down"]))
); );
super(parameters, { isRenderable, createQuadrilaterals: true }); super(parameters, { isRenderable, createQuadrilaterals: true });
} }
@ -395,7 +395,9 @@ class LinkAnnotationElement extends AnnotationElement {
this._bindLink(link, data.dest); this._bindLink(link, data.dest);
} else if ( } else if (
data.actions && data.actions &&
(data.actions.Action || data.actions.MouseUp || data.actions.MouseDown) && (data.actions.Action ||
data.actions["Mouse Up"] ||
data.actions["Mouse Down"]) &&
this.enableScripting && this.enableScripting &&
this.hasJSActions this.hasJSActions
) { ) {
@ -575,11 +577,7 @@ class WidgetAnnotationElement extends AnnotationElement {
_setEventListeners(element, names, getter) { _setEventListeners(element, names, getter) {
for (const [baseName, eventName] of names) { for (const [baseName, eventName] of names) {
if ( if (eventName === "Action" || this.data.actions?.[eventName]) {
eventName === "Action" ||
(this.data.actions &&
this.data.actions[eventName.replace(" ", "")] !== undefined)
) {
this._setEventListener(element, baseName, eventName, getter); this._setEventListener(element, baseName, eventName, getter);
} }
} }

View File

@ -83,7 +83,7 @@ class EventDispatcher {
return; return;
} }
const name = baseEvent.name.replace(" ", ""); const name = baseEvent.name;
const source = this._objects[id]; const source = this._objects[id];
const event = (globalThis.event = new Event(baseEvent)); const event = (globalThis.event = new Event(baseEvent));
let savedChange; let savedChange;

View File

@ -2238,15 +2238,15 @@ describe("annotation", function () {
}) })
.then(object => { .then(object => {
const actions = object.actions; const actions = object.actions;
expect(actions.MouseEnter).toEqual(["hello()"]); expect(actions["Mouse Enter"]).toEqual(["hello()"]);
expect(actions.MouseExit).toEqual([ expect(actions["Mouse Exit"]).toEqual([
"world()", "world()",
"olleh()", "olleh()",
"foo()", "foo()",
"dlrow()", "dlrow()",
"oof()", "oof()",
]); ]);
expect(actions.MouseDown).toEqual(["bar()"]); expect(actions["Mouse Down"]).toEqual(["bar()"]);
done(); done();
}, done.fail); }, done.fail);
}); });