diff --git a/package.json b/package.json index c5954b62..b274d2b8 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,6 @@ "jake-utils": "latest", "browserify": "latest", "moment": "latest", - "hammerjs": "latest" + "hammerjs": "1.0.5" } } diff --git a/src/graph/Graph.js b/src/graph/Graph.js index 8b783cb3..9b73aaf8 100644 --- a/src/graph/Graph.js +++ b/src/graph/Graph.js @@ -603,7 +603,7 @@ Graph.prototype._onMouseWheel = function(event) { scale *= (1 + zoom); // calculate the pointer location - var gesture = Hammer.event.collectEventData(this, 'scroll', event); + var gesture = util.fakeGesture(this, event); var pointer = this._getPointer(gesture.center); // apply the new scale @@ -624,7 +624,7 @@ Graph.prototype._onMouseWheel = function(event) { * @private */ Graph.prototype._onMouseMoveTitle = function (event) { - var gesture = Hammer.event.collectEventData(this, 'mousemove', event); + var gesture = util.fakeGesture(this, event); var pointer = this._getPointer(gesture.center); // check if the previously selected node is still selected diff --git a/src/timeline/Range.js b/src/timeline/Range.js index 1ebe7a45..b0f9bb7f 100644 --- a/src/timeline/Range.js +++ b/src/timeline/Range.js @@ -389,7 +389,7 @@ Range.prototype._onMouseWheel = function(event, component, direction) { } // calculate center, the date to zoom around - var gesture = Hammer.event.collectEventData(this, 'scroll', event), + var gesture = util.fakeGesture(this, event), pointer = getPointer(gesture.touches[0], component.frame), pointerDate = this._pointerToDate(component, direction, pointer); diff --git a/src/util.js b/src/util.js index e7abbf30..67647a88 100644 --- a/src/util.js +++ b/src/util.js @@ -548,6 +548,21 @@ util.stopPropagation = function stopPropagation(event) { } }; +/** + * Fake a hammer.js gesture. Event can be a ScrollEvent or MouseMoveEvent + * @param {Element} element + * @param {Event} event + */ +util.fakeGesture = function fakeGesture (element, event) { + var eventType = null; + + // for hammer.js 1.0.5 + return Hammer.event.collectEventData(this, eventType, event); + + // for hammer.js 1.0.6 + //var touches = Hammer.event.getTouchList(event, eventType); + //return Hammer.event.collectEventData(this, eventType, touches, event); +}; /** * Cancels the event if it is cancelable, without stopping further propagation of the event.