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

View File

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

View File

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