2d mouse wheel support
This commit is contained in:
parent
64aea4a8be
commit
05a9bfd332
3 changed files with 25 additions and 5 deletions
|
|
@ -323,8 +323,7 @@ var Editor = function(renderer, doc) {
|
||||||
};
|
};
|
||||||
|
|
||||||
this.onMouseWheel = function(e) {
|
this.onMouseWheel = function(e) {
|
||||||
var delta = e.wheel;
|
this.renderer.scrollBy(e.wheelX, e.wheelY);
|
||||||
this.renderer.scrollToY(this.renderer.getScrollTop() - (delta * 15));
|
|
||||||
return ace.preventDefault(e);
|
return ace.preventDefault(e);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
this.screenToTextCoordinates = function(pageX, pageY) {
|
||||||
var canvasPos = this.scroller.getBoundingClientRect();
|
var canvasPos = this.scroller.getBoundingClientRect();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -110,8 +110,24 @@ require.def("ace/lib/event", ["ace/lib/core"], function(core) {
|
||||||
|
|
||||||
event.addMouseWheelListener = function(el, callback) {
|
event.addMouseWheelListener = function(el, callback) {
|
||||||
var listener = function(e) {
|
var listener = function(e) {
|
||||||
e.wheel = (e.wheelDelta) ? e.wheelDelta / 120
|
if (e.wheelDelta !== undefined) {
|
||||||
: -(e.detail || 0) / 3;
|
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);
|
callback(e);
|
||||||
};
|
};
|
||||||
event.addListener(el, "DOMMouseScroll", listener);
|
event.addListener(el, "DOMMouseScroll", listener);
|
||||||
|
|
@ -158,6 +174,6 @@ require.def("ace/lib/event", ["ace/lib/core"], function(core) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return event;
|
return event;
|
||||||
});
|
});
|
||||||
Loading…
Add table
Add a link
Reference in a new issue