gestures = Detection.gestures,\r
numTouches = 0,// count the total touches on the screen\r
pointerType, i, l, touches, ret, active, gesture, startEv,\r
- deltaTime, deltaX, deltaY, velocity;\r
+ hammer, deltaTime, deltaX, deltaY, velocity;\r
\r
if( !type ) return;\r
\r
type |= POINTER;\r
switch( e.pointerType ){\r
case 'touch' :\r
- case e.MSPOINTER_TYPE_TOUCH :\r
+ case 2 : //e.MSPOINTER_TYPE_TOUCH :\r
type |= TOUCH; break;\r
case 'pen' :\r
- case e.MSPOINTER_TYPE_PEN :\r
+ case 3 : //e.MSPOINTER_TYPE_PEN :\r
type |= PEN; break;\r
case 'mouse' :\r
- case e.MSPOINTER_TYPE_MOUSE :\r
+ case 4 : //e.MSPOINTER_TYPE_MOUSE :\r
type |= MOUSE; break;\r
default :\r
return;\r
target : e.target\r
}];\r
};\r
-\r
// if we are in a end event, but when we remove one touch and\r
// we still have enough, set eventType to move\r
if( 0 < numTouches && type & END ){ // eventType === Hammer.EVENT_END ){\r
\r
// Register all gestures inside Gestures\r
for( name in Gestures ){\r
- Gestures.hasOwnProperty( name ) && Detection.register( Gestures[ name ] );\r
+ //Gestures.hasOwnProperty( name ) && \r
+ Detection.register( Gestures[ name ] );\r
};\r
\r
if( navigator.pointerEnabled || navigator.msPointerEnabled ){\r
/*\r
* "Android version < 2.2" return ev.touches.length === 1 when touchend, others return ev.touches.length === 0\r
*/\r
- Hammer.DO_TOUCHES_FIX = Hammer.HAS_TOUCHEVENTS && ( function( ua, i ){\r
- if( ( i = ua.indexOf('android') ) === -1 ) return false;\r
- return ( parseFloat( ua.substr( i + 8 ) ) || 0 ) < 2.2;\r
- })( navigator.userAgent.toLowerCase() );\r
+ Hammer.DO_TOUCHES_FIX = Hammer.HAS_TOUCHEVENTS && X.UA.Android < 2.2;\r
\r
// detect touchevents\r
Hammer.HAS_POINTEREVENTS = navigator.pointerEnabled || navigator.msPointerEnabled;\r
*/\r
register : function( gesture ){\r
// add an enable gesture options if there is no given\r
- var options = gesture.defaults || {};\r
+ var options = gesture.defaults || {},\r
+ list = Detection.gestures,\r
+ _index, i = 0, l = list.length, index;\r
if( options[ gesture.name ] === undefined ) options[ gesture.name ] = true;\r
\r
// extend Hammer default options with the Hammer.gesture options\r
gesture.index = gesture.index || 1000;\r
\r
// add Hammer.gesture to the list\r
- Detection.gestures.push( gesture );\r
+ //Detection.gestures.push( gesture );\r
\r
// sort the list by index\r
- Detection.gestures.sort( function( a, b ){\r
- return\r
- a.index < b.index ? -1 :\r
- a.index > b.index ? 1 : 0;\r
- });\r
+ //Detection.gestures.sort( function( a, b ){\r
+ // return\r
+ // a.index < b.index ? -1 :\r
+ // a.index > b.index ? 1 : 0;\r
+ //});\r
+ if( l === 0 ){\r
+ list[ 0 ] = gesture;\r
+ return;\r
+ };\r
+ _index = gesture.index;\r
+ for( i = 0; i < l; ++i ){\r
+ index = list[ i ].index;\r
+ if( i === 0 && _index < index ){\r
+ list.unshift( gesture );\r
+ return;\r
+ } else\r
+ if( i === l - 1 ){\r
+ list[ l ] = gesture;\r
+ return;\r
+ } else\r
+ if( index <= _index && _index < list[ i + 1 ].index ){\r
+ list.splice( i, 0, gesture );\r
+ return;\r
+ };\r
+ };\r
}\r
};\r
\r
* @events hold holdend\r
*/\r
Gestures.Hold = {\r
- name : 'hold',\r
- index : 10,\r
+ name : 'hold',\r
+ index : 10,\r
startID : X.UI.Event.HOLD,\r
endID : X.UI.Event.HOLD_END,\r
defaults : {\r
// do a single tap\r
if( hammer.options.tap_always ){\r
Detection.current.name = 'tap';\r
- return hammer.trigger( X.UI.Event.TAP, e );\r
+ return hammer.trigger( X.UI.Event.TAP, e );\r
};\r
};\r
}\r
* @events swipe, swipeleft, swiperight, swipeup, swipedown\r
*/\r
Gestures.Swipe = {\r
- name : 'swipe',\r
- index : 40,\r
+ name : 'swipe',\r
+ index : 40,\r
startID : X.UI.Event.SWIP,\r
endID : X.UI.Event.SWIP_DOWN,\r
defaults : {\r
// set 0 for unlimited, but this can conflict with transform\r
swipe_max_touches : 1,\r
- swipe_velocity : 0.7\r
+ swipe_velocity : 0.7\r
},\r
handler : function swipeGesture(e, hammer) {\r
if( e.eventType === END ){\r
* @events drag, dragstart, dragend, drapleft, dragright, dragup, dragdown\r
*/\r
Gestures.Drag = {\r
- name : 'drag',\r
- index : 50,\r
+ name : 'drag',\r
+ index : 50,\r
startID : X.UI.Event.DRAG,\r
endID : X.UI.Event.DRAG_DOWN,\r
defaults : {\r
* @events transform, transformstart, transformend, pinch, pinchin, pinchout, rotate\r
*/\r
Gestures.Transform = {\r
- name : 'transform',\r
- index : 45,\r
+ name : 'transform',\r
+ index : 45,\r
startID : X.UI.Event.TRANSFORM,\r
endID : X.UI.Event.ROTATE,\r
defaults : {\r
* @events touch\r
*/\r
Gestures.Touch = {\r
- name : 'touch',\r
- index : -Infinity,\r
+ name : 'touch',\r
+ index : -Infinity,\r
defaults : {\r
// call preventDefault at touchstart, and makes the element blocking by\r
// disabling the scrolling of the page, but it improves gestures like\r
* @events release\r
*/\r
Gestures.Release = {\r
- name : 'release',\r
- index : Infinity,\r
+ name : 'release',\r
+ index : Infinity,\r
handler : function releaseGesture( e, hammer ){\r
e.eventType === END && hammer.trigger( this.name, e );\r
}\r