Skip to content

Commit 7823bb9

Browse files
committed
pointerEvents: add origin option
Close #389
1 parent 6cbaad6 commit 7823bb9

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

src/pointerEvents/index.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,20 @@ function firePointers (interaction, pointer, event, eventTarget, targets, eventT
8686
pointerEvent[prop] = target.props[prop];
8787
}
8888

89+
const { x: originX, y: originY } = utils.getOriginXY(target.eventable, target.element);
90+
91+
pointerEvent.pageX -= originX;
92+
pointerEvent.pageY -= originY;
93+
pointerEvent.clientX -= originX;
94+
pointerEvent.clientY -= originY;
95+
8996
target.eventable.fire(pointerEvent);
9097

98+
pointerEvent.pageX += originX;
99+
pointerEvent.pageY += originY;
100+
pointerEvent.clientX += originX;
101+
pointerEvent.clientY += originY;
102+
91103
if (pointerEvent.immediatePropagationStopped
92104
|| (pointerEvent.propagationStopped
93105
&& (i + 1) < targets.length && targets[i + 1].element !== pointerEvent.currentTarget)) {
@@ -254,6 +266,7 @@ defaults.pointerEvents = {
254266
holdDuration: 600,
255267
ignoreFrom : null,
256268
allowFrom : null,
269+
origin : { x: 0, y: 0 },
257270
};
258271

259272
module.exports = scope.pointerEvents = {

src/pointerEvents/interactableTargets.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,18 @@ pointerEvents.signals.on('collect-targets', function ({ targets, element, eventT
4949
scope.interactables.forEachSelector(collectSelectors);
5050
});
5151

52+
Interactable.signals.on('new', function ({ interactable }) {
53+
interactable.events.getRect = function (element) {
54+
return interactable.getRect(element);
55+
}
56+
});
57+
5258
merge(Interactable.eventTypes, pointerEvents.types);
5359

5460
Interactable.prototype.pointerEvents = function (options) {
5561
extend(this.events.options, options);
5662

5763
return this;
5864
};
65+
66+
Interactable.settingsMethods.push('pointerEvents');

0 commit comments

Comments
 (0)