diff --git a/Editor.js b/Editor.js index 9e723f32..9de1afa5 100644 --- a/Editor.js +++ b/Editor.js @@ -108,7 +108,7 @@ function Editor(doc, renderer) addListener(container, "mousedown", bind(this.onMouseDown, this)); addListener(container, "dblclick", bind(this.onMouseDoubleClick, this)); - addListener(container, "mousewheel", bind(this.onMouseWheel, this)); + addMouseWheelListener(container, bind(this.onMouseWheel, this)); addTripleClickListener(container, bind(this.selectCurrentLine, this)); this.doc = doc; @@ -231,8 +231,8 @@ function Editor(doc, renderer) onMouseWheel : function(e) { - var delta = e.wheelDeltaY; - this.renderer.scrollToY(this.renderer.getScrollTop() - (delta/10)); + var delta = e.wheel; + this.renderer.scrollToY(this.renderer.getScrollTop() - (delta * 15)); return preventDefault(e); }, diff --git a/lib.js b/lib.js index 744e89aa..1f31694a 100644 --- a/lib.js +++ b/lib.js @@ -130,6 +130,16 @@ capture = function(el, eventHandler, releaseCaptureHandler) document.addEventListener("mouseup", onMouseUp, true); } +function addMouseWheelListener(el, callback) +{ + var listener = function(e) { + e.wheel = (e.wheelDelta) ? e.wheelDelta / 120 : -(e.detail || 0) / 3; + callback(e); + } + addListener(el, "DOMMouseScroll", listener); + addListener(el, "mousewheel", listener); +}; + function autoRemoveListener(el, type, callback, timeout) { var listener = function(e)