diff --git a/lib/ace/lib/event.js b/lib/ace/lib/event.js index bb74f34c..1da47ac4 100644 --- a/lib/ace/lib/event.js +++ b/lib/ace/lib/event.js @@ -141,9 +141,9 @@ else { } exports.addMouseWheelListener = function(el, callback) { - var factor = 8; - var listener = function(e) { - if (e.wheelDelta !== undefined) { + if ("onmousewheel" in el) { + var factor = 8; + exports.addListener(el, "DOMMouseScroll", function(e) { if (e.wheelDeltaX !== undefined) { e.wheelX = -e.wheelDeltaX / factor; e.wheelY = -e.wheelDeltaY / factor; @@ -151,8 +151,16 @@ exports.addMouseWheelListener = function(el, callback) { e.wheelX = 0; e.wheelY = -e.wheelDelta / factor; } - } - else { + callback(e); + }); + } else if ("onwheel" in el) { + exports.addListener(el, "wheel", function(e) { + e.wheelX = (e.deltaX || 0) * 5; + e.wheelY = (e.deltaY || 0) * 5; + callback(e); + }); + } else { + exports.addListener(el, "DOMMouseScroll", function(e) { if (e.axis && e.axis == e.HORIZONTAL_AXIS) { e.wheelX = (e.detail || 0) * 5; e.wheelY = 0; @@ -160,11 +168,9 @@ exports.addMouseWheelListener = function(el, callback) { e.wheelX = 0; e.wheelY = (e.detail || 0) * 5; } - } - callback(e); - }; - exports.addListener(el, "DOMMouseScroll", listener); - exports.addListener(el, "mousewheel", listener); + callback(e); + }); + } }; exports.addMultiMouseDownListener = function(el, timeouts, eventHandler, callbackName) {