From 2740792df3144e205dc84f71dd0db1b04479ead3 Mon Sep 17 00:00:00 2001 From: Antoine Vandecreme Date: Sun, 20 Mar 2016 10:04:23 -0400 Subject: [PATCH] Fix flick gesture with rotation. Fix #869 --- src/viewer.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/viewer.js b/src/viewer.js index d96f81c0..2154a094 100644 --- a/src/viewer.js +++ b/src/viewer.js @@ -2546,11 +2546,16 @@ function onCanvasDragEnd( event ) { if ( !event.preventDefaultAction && this.viewport ) { gestureSettings = this.gestureSettingsByDeviceType( event.pointerType ); - if ( gestureSettings.flickEnabled && event.speed >= gestureSettings.flickMinSpeed ) { - var amplitudeX = gestureSettings.flickMomentum * ( event.speed * Math.cos( event.direction - (Math.PI / 180 * this.viewport.degrees) ) ), - amplitudeY = gestureSettings.flickMomentum * ( event.speed * Math.sin( event.direction - (Math.PI / 180 * this.viewport.degrees) ) ), - center = this.viewport.pixelFromPoint( this.viewport.getCenter( true ) ), - target = this.viewport.pointFromPixel( new $.Point( center.x - amplitudeX, center.y - amplitudeY ) ); + if (gestureSettings.flickEnabled && + event.speed >= gestureSettings.flickMinSpeed) { + var amplitudeX = gestureSettings.flickMomentum * event.speed * + Math.cos(event.direction); + var amplitudeY = gestureSettings.flickMomentum * event.speed * + Math.sin(event.direction); + var center = this.viewport.pixelFromPoint( + this.viewport.getCenter(true)); + var target = this.viewport.pointFromPixel( + new $.Point(center.x - amplitudeX, center.y - amplitudeY)); if( !this.panHorizontal ) { target.x = center.x; }