@@ -422,13 +422,75 @@ export abstract class CanvasBase extends View implements ICanvasBase {
422422 }
423423 break ;
424424 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+
426488 break ;
427489 default :
428490 break ;
429491 }
430492 } else if ( event . eventName === 'pinch' ) {
431- const numberOfPointers = this . _pointerCountFromEvent ( event ) ;
493+ /* const numberOfPointers = this._pointerCountFromEvent(event);
432494 if (!this._isPinching && numberOfPointers >= 2 && (event.state === GestureStateTypes.began || event.state === GestureStateTypes.changed)) {
433495 this._previousPinchDistance = 0;
434496 this._isPinching = true;
@@ -492,12 +554,10 @@ export abstract class CanvasBase extends View implements ICanvasBase {
492554 this._createTouchEvent('touchmove', { ...extraData, data })
493555 );
494556 }
495-
496-
497557 }
498558 if (event.state === GestureStateTypes.ended || event.state === GestureStateTypes.cancelled) {
499559 this._isPinching = false;
500- }
560+ } */
501561 }
502562 else if ( event . eventName === 'pan' ) {
503563 if ( this . _isPinching ) {
0 commit comments