@@ -422,13 +422,75 @@ export abstract class CanvasBase extends View implements ICanvasBase {
422
422
}
423
423
break ;
424
424
case 'move' :
425
- // NOOP
425
+ if ( event . state === GestureStateTypes . began || event . state === GestureStateTypes . changed ) {
426
+ const numberOfPointers = this . _pointerCountFromEvent ( event ) ;
427
+ if ( numberOfPointers >= 2 ) {
428
+ hasPointerMove = this . hasListeners ( 'pointermove' ) ;
429
+ hasTouchMove = this . hasListeners ( 'touchmove' ) ;
430
+ let data = { } ;
431
+
432
+ if ( hasPointerMove || hasTouchMove ) {
433
+ const positions = this . _positionsFromEvent ( event ) ;
434
+ extraData = {
435
+ numberOfPointers,
436
+ positions,
437
+ x : positions [ 0 ] ,
438
+ y : positions [ 1 ]
439
+ }
440
+
441
+ const dx = extraData . positions [ 2 ] - extraData . positions [ 0 ] ;
442
+ const dy = extraData . positions [ 3 ] - extraData . positions [ 1 ] ;
443
+ let delta = 0 ;
444
+
445
+ const distance = Math . sqrt ( dx * dx + dy * dy ) ;
446
+ if ( this . _previousPinchDistance ) {
447
+ delta = this . _previousPinchDistance - distance ;
448
+ }
449
+ this . _previousPinchDistance = distance ;
450
+
451
+ const x = dx ; //event.getFocusX();
452
+ const y = dy ; //event.getFocusY();
453
+ const scale = event . scale ;
454
+
455
+ data = {
456
+ deltaMode : 0 ,
457
+ clientX : x ,
458
+ clientY : y ,
459
+ screenX : x ,
460
+ screenY : y ,
461
+ deltaX : 0 ,
462
+ deltaY : delta ,
463
+ deltaZ : 0 ,
464
+ } ;
465
+ }
466
+
467
+ if ( hasPointerMove ) {
468
+ const count = extraData . numberOfPointers ;
469
+ const positions = extraData . positions ;
470
+ for ( let i = 0 ; i < count ; i ++ ) {
471
+ let x = positions [ i ] - extraData . x ;
472
+ let y = positions [ i + 1 ] - extraData . y ;
473
+ this . notify ( {
474
+ ...this . _createPointerEvent ( 'pointermove' , { ...extraData , x, y } ) ,
475
+ pointerId : this . _pointers [ i ] . id
476
+ } ) ;
477
+ }
478
+ }
479
+
480
+ if ( hasTouchMove ) {
481
+ this . notify (
482
+ this . _createTouchEvent ( 'touchmove' , { ...extraData , data } )
483
+ ) ;
484
+ }
485
+ }
486
+ }
487
+
426
488
break ;
427
489
default :
428
490
break ;
429
491
}
430
492
} else if ( event . eventName === 'pinch' ) {
431
- const numberOfPointers = this . _pointerCountFromEvent ( event ) ;
493
+ /* const numberOfPointers = this._pointerCountFromEvent(event);
432
494
if (!this._isPinching && numberOfPointers >= 2 && (event.state === GestureStateTypes.began || event.state === GestureStateTypes.changed)) {
433
495
this._previousPinchDistance = 0;
434
496
this._isPinching = true;
@@ -492,12 +554,10 @@ export abstract class CanvasBase extends View implements ICanvasBase {
492
554
this._createTouchEvent('touchmove', { ...extraData, data })
493
555
);
494
556
}
495
-
496
-
497
557
}
498
558
if (event.state === GestureStateTypes.ended || event.state === GestureStateTypes.cancelled) {
499
559
this._isPinching = false;
500
- }
560
+ } */
501
561
}
502
562
else if ( event . eventName === 'pan' ) {
503
563
if ( this . _isPinching ) {
0 commit comments