pointer support check

This commit is contained in:
Anton Lavrenov
2019-08-08 22:12:18 +07:00
parent 0975848dd7
commit c4be177c9d
5 changed files with 1359 additions and 2857 deletions

1386
konva.js

File diff suppressed because it is too large Load Diff

2
konva.min.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -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;

View File

@@ -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'))
); );
} }
}

File diff suppressed because it is too large Load Diff