@@ -78,7 +78,9 @@ var tapTouchFocusedInput;
78
78
var tapLastTouchTarget ;
79
79
var tapTouchMoveListener = 'touchmove' ;
80
80
81
- var TAP_RELEASE_TOLERANCE = 6 ; // how much the coordinates can be off between start/end, but still a click
81
+ // how much the coordinates can be off between start/end, but still a click
82
+ var TAP_RELEASE_TOLERANCE = 6 ; // default tolerance
83
+ var TAP_RELEASE_BUTTON_TOLERANCE = 50 ; // button elements should have a larger tolerance
82
84
83
85
var tapEventListeners = {
84
86
'click' : tapClickGateKeeper ,
@@ -234,8 +236,9 @@ ionic.tap = {
234
236
return false ;
235
237
} ,
236
238
237
- setTolerance : function ( val ) {
238
- TAP_RELEASE_TOLERANCE = val ;
239
+ setTolerance : function ( releaseTolerance , releaseButtonTolerance ) {
240
+ TAP_RELEASE_TOLERANCE = releaseTolerance ;
241
+ TAP_RELEASE_BUTTON_TOLERANCE = releaseButtonTolerance ;
239
242
}
240
243
241
244
} ;
@@ -502,8 +505,10 @@ function tapHasPointerMoved(endEvent) {
502
505
}
503
506
var endCoordinates = getPointerCoordinates ( endEvent ) ;
504
507
505
- return Math . abs ( tapPointerStart . x - endCoordinates . x ) > TAP_RELEASE_TOLERANCE ||
506
- Math . abs ( tapPointerStart . y - endCoordinates . y ) > TAP_RELEASE_TOLERANCE ;
508
+ var releaseTolerance = ( endEvent . target . classList . contains ( 'button' ) ? TAP_RELEASE_BUTTON_TOLERANCE : TAP_RELEASE_TOLERANCE ) ;
509
+
510
+ return Math . abs ( tapPointerStart . x - endCoordinates . x ) > releaseTolerance ||
511
+ Math . abs ( tapPointerStart . y - endCoordinates . y ) > releaseTolerance ;
507
512
}
508
513
509
514
function getPointerCoordinates ( event ) {
0 commit comments