diff --git a/jquery.mCustomScrollbar.js b/jquery.mCustomScrollbar.js index 5106f9f..a060734 100644 --- a/jquery.mCustomScrollbar.js +++ b/jquery.mCustomScrollbar.js @@ -1157,20 +1157,24 @@ and dependencies (minified). /* returns input coordinates of pointer, touch and mouse events (relative to document) */ _coordinates=function(e){ - var t=e.type,o=e.target.ownerDocument!==document ? [$(frameElement).offset().top,$(frameElement).offset().left] : null, + if (e.coords) + return e.coords; + var t=e.type,o=e.target.ownerDocument!==document ? [$(frameElement).offset().top,$(frameElement).offset().left] : null,ret, io=_canAccessIFrame() && e.target.ownerDocument!==top.document ? [$(e.view.frameElement).offset().top,$(e.view.frameElement).offset().left] : [0,0]; switch(t){ case "pointerdown": case "MSPointerDown": case "pointermove": case "MSPointerMove": case "pointerup": case "MSPointerUp": - return o ? [e.originalEvent.pageY-o[0]+io[0],e.originalEvent.pageX-o[1]+io[1],false] : [e.originalEvent.pageY,e.originalEvent.pageX,false]; + ret = o ? [e.originalEvent.pageY-o[0]+io[0],e.originalEvent.pageX-o[1]+io[1],false] : [e.originalEvent.pageY,e.originalEvent.pageX,false]; break; case "touchstart": case "touchmove": case "touchend": var touch=e.originalEvent.touches[0] || e.originalEvent.changedTouches[0], touches=e.originalEvent.touches.length || e.originalEvent.changedTouches.length; - return e.target.ownerDocument!==document ? [touch.screenY,touch.screenX,touches>1] : [touch.pageY,touch.pageX,touches>1]; + ret = e.target.ownerDocument!==document ? [touch.screenY,touch.screenX,touches>1] : [touch.pageY,touch.pageX,touches>1]; break; default: - return o ? [e.pageY-o[0]+io[0],e.pageX-o[1]+io[1],false] : [e.pageY,e.pageX,false]; + ret = o ? [e.pageY-o[0]+io[0],e.pageX-o[1]+io[1],false] : [e.pageY,e.pageX,false]; } + e.coords = ret; + return ret; }, /* -------------------- */ @@ -2422,4 +2426,4 @@ and dependencies (minified). }); -}))})); \ No newline at end of file +}))}));