2d mouse wheel support

This commit is contained in:
Fabian Jakobs 2010-09-20 11:48:13 +02:00
commit 05a9bfd332
3 changed files with 25 additions and 5 deletions

View file

@ -323,8 +323,7 @@ var Editor = function(renderer, doc) {
};
this.onMouseWheel = function(e) {
var delta = e.wheel;
this.renderer.scrollToY(this.renderer.getScrollTop() - (delta * 15));
this.renderer.scrollBy(e.wheelX, e.wheelY);
return ace.preventDefault(e);
};

View file

@ -314,6 +314,11 @@ var VirtualRenderer = function(container) {
}
};
this.scrollBy = function(deltaX, deltaY) {
deltaY && this.scrollToY(this.scrollTop + deltaY);
deltaX && (this.scroller.scrollLeft += deltaX);
};
this.screenToTextCoordinates = function(pageX, pageY) {
var canvasPos = this.scroller.getBoundingClientRect();

View file

@ -110,8 +110,24 @@ require.def("ace/lib/event", ["ace/lib/core"], function(core) {
event.addMouseWheelListener = function(el, callback) {
var listener = function(e) {
e.wheel = (e.wheelDelta) ? e.wheelDelta / 120
: -(e.detail || 0) / 3;
if (e.wheelDelta !== undefined) {
if (e.wheelDeltaX !== undefined) {
e.wheelX = e.wheelDeltaX / 8;
e.wheelY = e.wheelDeltaY / 8;
} else {
e.wheelX = 0;
e.wheelY = e.wheelDelta / 8;
}
}
else {
if (e.axis && e.axis == e.HORIZONTAL_AXIS) {
e.wheelX = (e.detail || 0) * 5;
e.wheelY = 0;
} else {
e.wheelX = 0;
e.wheelY = (e.detail || 0) * 5;
}
}
callback(e);
};
event.addListener(el, "DOMMouseScroll", listener);
@ -158,6 +174,6 @@ require.def("ace/lib/event", ["ace/lib/core"], function(core) {
});
}
};
return event;
});