allow starting and cancelling mouse capture from outside
This commit is contained in:
parent
4cb1e7b849
commit
9a2ee70af8
2 changed files with 9 additions and 1 deletions
|
|
@ -112,6 +112,8 @@ exports.capture = function(el, eventHandler, releaseCaptureHandler) {
|
|||
exports.addListener(document, "mousemove", eventHandler, true);
|
||||
exports.addListener(document, "mouseup", onMouseUp, true);
|
||||
exports.addListener(document, "dragstart", onMouseUp, true);
|
||||
|
||||
return onMouseUp;
|
||||
};
|
||||
|
||||
exports.addMouseWheelListener = function(el, callback) {
|
||||
|
|
|
|||
|
|
@ -115,6 +115,8 @@ var MouseHandler = function(editor) {
|
|||
self.x = e.clientX;
|
||||
self.y = e.clientY;
|
||||
mouseMoveHandler && mouseMoveHandler(e);
|
||||
self.mouseEvent = new MouseEvent(e, self.editor);
|
||||
self.$mouseMoved = true;
|
||||
};
|
||||
|
||||
var onCaptureEnd = function(e) {
|
||||
|
|
@ -127,20 +129,24 @@ var MouseHandler = function(editor) {
|
|||
renderer.$moveTextAreaToCursor();
|
||||
}
|
||||
self.isMousePressed = false;
|
||||
self.$onCaptureMouseMove = self.releaseMouse = null;
|
||||
self.onMouseEvent("mouseup", e);
|
||||
};
|
||||
|
||||
var onCaptureInterval = function() {
|
||||
self[self.state] && self[self.state]();
|
||||
self.$mouseMoved = false;
|
||||
};
|
||||
|
||||
if (useragent.isOldIE && ev.domEvent.type == "dblclick") {
|
||||
return setTimeout(function() {onCaptureEnd(ev);});
|
||||
}
|
||||
|
||||
event.capture(this.editor.container, onMouseMove, onCaptureEnd);
|
||||
self.$onCaptureMouseMove = onMouseMove;
|
||||
self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);
|
||||
var timerId = setInterval(onCaptureInterval, 20);
|
||||
};
|
||||
this.releaseMouse = null;
|
||||
}).call(MouseHandler.prototype);
|
||||
|
||||
config.defineOptions(MouseHandler.prototype, "mouseHandler", {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue