konva
Version:
HTML5 2d canvas library.
38 lines (37 loc) • 1.13 kB
JavaScript
import { Konva } from "./Global.js";
const Captures = new Map();
const SUPPORT_POINTER_EVENTS = Konva._global['PointerEvent'] !== undefined;
export function getCapturedShape(pointerId) {
return Captures.get(pointerId);
}
export function createEvent(evt) {
return {
evt,
pointerId: evt.pointerId,
};
}
export function hasPointerCapture(pointerId, shape) {
return Captures.get(pointerId) === shape;
}
export function setPointerCapture(pointerId, shape) {
releaseCapture(pointerId);
const stage = shape.getStage();
if (!stage)
return;
Captures.set(pointerId, shape);
if (SUPPORT_POINTER_EVENTS) {
shape._fire('gotpointercapture', createEvent(new PointerEvent('gotpointercapture')));
}
}
export function releaseCapture(pointerId, target) {
const shape = Captures.get(pointerId);
if (!shape)
return;
const stage = shape.getStage();
if (stage && stage.content) {
}
Captures.delete(pointerId);
if (SUPPORT_POINTER_EVENTS) {
shape._fire('lostpointercapture', createEvent(new PointerEvent('lostpointercapture')));
}
}