fix mouse handling for ie8
This commit is contained in:
parent
61ae350324
commit
e7b952a55e
2 changed files with 21 additions and 4 deletions
|
|
@ -193,7 +193,7 @@ exports.addMultiMouseDownListener = function(el, timeouts, eventHandler, callbac
|
||||||
4: "quadclick"
|
4: "quadclick"
|
||||||
};
|
};
|
||||||
|
|
||||||
var listener = function(e) {
|
exports.addListener(el, "mousedown", function(e) {
|
||||||
if (exports.getButton(e) != 0) {
|
if (exports.getButton(e) != 0) {
|
||||||
clicks = 0;
|
clicks = 0;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -219,10 +219,18 @@ exports.addMultiMouseDownListener = function(el, timeouts, eventHandler, callbac
|
||||||
clicks = 0;
|
clicks = 0;
|
||||||
else if (clicks > 1)
|
else if (clicks > 1)
|
||||||
return eventHandler[callbackName](eventNames[clicks], e);
|
return eventHandler[callbackName](eventNames[clicks], e);
|
||||||
};
|
});
|
||||||
|
|
||||||
exports.addListener(el, "mousedown", listener);
|
if (useragent.isOldIE) {
|
||||||
useragent.isOldIE && exports.addListener(el, "dblclick", listener);
|
exports.addListener(el, "dblclick", function(e) {
|
||||||
|
clicks = 2;
|
||||||
|
if (timer)
|
||||||
|
clearTimeout(timer);
|
||||||
|
timer = setTimeout(function() {timer = null}, timeouts[clicks - 1] || 600);
|
||||||
|
eventHandler[callbackName]("mousedown", e);
|
||||||
|
eventHandler[callbackName](eventNames[clicks], e);
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
function normalizeCommandKeys(callback, e, keyCode) {
|
function normalizeCommandKeys(callback, e, keyCode) {
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ define(function(require, exports, module) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var event = require("../lib/event");
|
var event = require("../lib/event");
|
||||||
|
var useragent = require("../lib/useragent");
|
||||||
var DefaultHandlers = require("./default_handlers").DefaultHandlers;
|
var DefaultHandlers = require("./default_handlers").DefaultHandlers;
|
||||||
var DefaultGutterHandler = require("./default_gutter_handler").GutterHandler;
|
var DefaultGutterHandler = require("./default_gutter_handler").GutterHandler;
|
||||||
var MouseEvent = require("./mouse_event").MouseEvent;
|
var MouseEvent = require("./mouse_event").MouseEvent;
|
||||||
|
|
@ -148,6 +149,14 @@ var MouseHandler = function(editor) {
|
||||||
var onCaptureInterval = function() {
|
var onCaptureInterval = function() {
|
||||||
self[self.state] && self[self.state]();
|
self[self.state] && self[self.state]();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (useragent.isOldIE && ev.domEvent.type == "dblclick") {
|
||||||
|
setTimeout(function() {
|
||||||
|
onCaptureInterval();
|
||||||
|
onCaptureEnd(ev.domEvent);
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
event.capture(this.editor.container, onMouseMove, onCaptureEnd);
|
event.capture(this.editor.container, onMouseMove, onCaptureEnd);
|
||||||
var timerId = setInterval(onCaptureInterval, 20);
|
var timerId = setInterval(onCaptureInterval, 20);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue