Skip to content

Commit

Permalink
Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
theodorejb committed Nov 21, 2023
1 parent 67c3660 commit 424faf7
Showing 1 changed file with 18 additions and 10 deletions.
28 changes: 18 additions & 10 deletions build/cropt.js
Original file line number Diff line number Diff line change
Expand Up @@ -327,16 +327,21 @@ export class Cropt {
#initDraggable() {
let originalX = 0;
let originalY = 0;
let pEventCache = new Map();
let pEventCache = [];
let origPinchDistance = 0;
let pointerMove = (ev) => {
ev.preventDefault();
// update cached event
pEventCache.set(ev.pointerId, ev);
if (pEventCache.size === 2) {
const events = pEventCache.entries();
let touch1 = events.next().value;
let touch2 = events.next().value;
const cacheIndex = pEventCache.findIndex((cEv) => cEv.pointerId === ev.pointerId);
if (cacheIndex === -1) {
return;
}
else {
pEventCache[cacheIndex] = ev;
}
if (pEventCache.length === 2) {
let touch1 = pEventCache[0];
let touch2 = pEventCache[1];
let dist = Math.sqrt((touch1.pageX - touch2.pageX) * (touch1.pageX - touch2.pageX) + (touch1.pageY - touch2.pageY) * (touch1.pageY - touch2.pageY));
if (origPinchDistance === 0) {
origPinchDistance = dist / this.#scale;
Expand All @@ -353,8 +358,11 @@ export class Cropt {
};
let pointerUp = (ev) => {
//this.elements.overlay.releasePointerCapture(ev.pointerId);
pEventCache.delete(ev.pointerId);
if (pEventCache.size === 0) {
const cacheIndex = pEventCache.findIndex((cEv) => cEv.pointerId === ev.pointerId);
if (cacheIndex !== -1) {
pEventCache.splice(cacheIndex, 1);
}
if (pEventCache.length === 0) {
//this.elements.overlay.removeEventListener('pointerenter', pointerDown);
this.elements.overlay.removeEventListener('pointermove', pointerMove);
this.elements.overlay.removeEventListener('pointerup', pointerUp);
Expand All @@ -368,9 +376,9 @@ export class Cropt {
return; // non-left mouse button press
}
ev.preventDefault();
pEventCache.set(ev.pointerId, ev);
pEventCache.push(ev);
this.elements.overlay.setPointerCapture(ev.pointerId);
if (pEventCache.size > 1) {
if (pEventCache.length > 1) {
return; // ignore additional pointers
}
originalX = ev.pageX;
Expand Down

0 comments on commit 424faf7

Please sign in to comment.