double clicks need to be close to each other
This commit is contained in:
parent
00b225f124
commit
4e9c8aae48
2 changed files with 12 additions and 4 deletions
|
|
@ -28,8 +28,8 @@ var Editor = function(renderer, doc) {
|
|||
|
||||
var mouseTarget = renderer.getMouseEventTarget();
|
||||
ace.addListener(mouseTarget, "mousedown", ace.bind(this.onMouseDown, this));
|
||||
ace.addMultiMouseDownListener(mouseTarget, 2, ace.bind(this.onMouseDoubleClick, this));
|
||||
ace.addMultiMouseDownListener(mouseTarget, 3, ace.bind(this.onMouseTripleClick, this));
|
||||
ace.addMultiMouseDownListener(mouseTarget, 2, 500, ace.bind(this.onMouseDoubleClick, this));
|
||||
ace.addMultiMouseDownListener(mouseTarget, 3, 600, ace.bind(this.onMouseTripleClick, this));
|
||||
ace.addMouseWheelListener(mouseTarget, ace.bind(this.onMouseWheel, this));
|
||||
|
||||
this.$selectionMarker = null;
|
||||
|
|
|
|||
|
|
@ -136,16 +136,24 @@ require.def("ace/lib/event", ["ace/lib/core"], function(core) {
|
|||
event.addListener(el, "mousewheel", listener);
|
||||
};
|
||||
|
||||
event.addMultiMouseDownListener = function(el, count, callback) {
|
||||
event.addMultiMouseDownListener = function(el, count, timeout, callback) {
|
||||
var clicks = 0;
|
||||
var startX, startY;
|
||||
|
||||
var listener = function(e) {
|
||||
clicks += 1;
|
||||
if (clicks == 1) {
|
||||
startX = e.clientX;
|
||||
startY = e.clientY;
|
||||
|
||||
setTimeout(function() {
|
||||
clicks = 0;
|
||||
}, 600);
|
||||
}, timeout || 600);
|
||||
}
|
||||
|
||||
if (Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5)
|
||||
clicks = 0;
|
||||
|
||||
if (clicks == count) {
|
||||
clicks = 0;
|
||||
callback(e);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue