mirror of
https://github.com/konvajs/konva.git
synced 2026-01-23 05:14:58 +08:00
pointer support check
This commit is contained in:
2
konva.min.js
vendored
2
konva.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -201,7 +201,7 @@ export const Konva = {
|
|||||||
// user agent
|
// user agent
|
||||||
UA: _parseUA((glob.navigator && glob.navigator.userAgent) || ''),
|
UA: _parseUA((glob.navigator && glob.navigator.userAgent) || ''),
|
||||||
document: glob.document,
|
document: glob.document,
|
||||||
// insert Konva into global namaspace (window)
|
// insert Konva into global namespace (window)
|
||||||
// it is required for npm packages
|
// it is required for npm packages
|
||||||
_injectGlobal(Konva) {
|
_injectGlobal(Konva) {
|
||||||
glob.Konva = Konva;
|
glob.Konva = Konva;
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
import { KonvaEventObject } from './Node';
|
import { KonvaEventObject } from './Node';
|
||||||
|
import { Konva } from './Global';
|
||||||
|
|
||||||
import { Shape } from './Shape';
|
import { Shape } from './Shape';
|
||||||
import { Stage } from './Stage';
|
import { Stage } from './Stage';
|
||||||
|
|
||||||
const Captures = new Map<number, Shape | Stage>();
|
const Captures = new Map<number, Shape | Stage>();
|
||||||
|
|
||||||
|
// we may use this module for capturing touch events too
|
||||||
|
// so make sure we don't do something super specific to pointer
|
||||||
|
const SUPPORT_POINTER_EVENTS = Konva._global['PointerEvent'] !== undefined;
|
||||||
|
|
||||||
export interface KonvaPointerEvent extends KonvaEventObject<PointerEvent> {
|
export interface KonvaPointerEvent extends KonvaEventObject<PointerEvent> {
|
||||||
pointerId: number;
|
pointerId: number;
|
||||||
}
|
}
|
||||||
@@ -32,11 +37,13 @@ export function setPointerCapture(pointerId: number, shape: Shape | Stage) {
|
|||||||
|
|
||||||
Captures.set(pointerId, shape);
|
Captures.set(pointerId, shape);
|
||||||
|
|
||||||
|
if (SUPPORT_POINTER_EVENTS) {
|
||||||
shape._fire(
|
shape._fire(
|
||||||
'gotpointercapture',
|
'gotpointercapture',
|
||||||
createEvent(new PointerEvent('gotpointercapture'))
|
createEvent(new PointerEvent('gotpointercapture'))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export function releaseCapture(pointerId: number, target?: Shape | Stage) {
|
export function releaseCapture(pointerId: number, target?: Shape | Stage) {
|
||||||
const shape = Captures.get(pointerId);
|
const shape = Captures.get(pointerId);
|
||||||
@@ -51,8 +58,10 @@ export function releaseCapture(pointerId: number, target?: Shape | Stage) {
|
|||||||
|
|
||||||
Captures.delete(pointerId);
|
Captures.delete(pointerId);
|
||||||
|
|
||||||
|
if (SUPPORT_POINTER_EVENTS) {
|
||||||
shape._fire(
|
shape._fire(
|
||||||
'lostpointercapture',
|
'lostpointercapture',
|
||||||
createEvent(new PointerEvent('lostpointercapture'))
|
createEvent(new PointerEvent('lostpointercapture'))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
2797
test/hammer.js
2797
test/hammer.js
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user