From 90b2a6cd772bb9a2997a639c06caa55503613057 Mon Sep 17 00:00:00 2001 From: nightwing Date: Sun, 29 Dec 2013 20:05:23 +0400 Subject: [PATCH] fix multiselect mouse interaction issues --- lib/ace/mouse/dragdrop_handler.js | 4 +++- lib/ace/mouse/multi_select_handler.js | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/ace/mouse/dragdrop_handler.js b/lib/ace/mouse/dragdrop_handler.js index 3a4bc188..b3b10608 100644 --- a/lib/ace/mouse/dragdrop_handler.js +++ b/lib/ace/mouse/dragdrop_handler.js @@ -384,6 +384,8 @@ function DragdropHandler(mouseHandler) { var button = e.getButton(); var clickCount = e.domEvent.detail || 1; if (clickCount === 1 && button === 0 && inSelection) { + if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey())) + return; this.mousedownEvent.time = Date.now(); var eventTarget = e.domEvent.target || e.domEvent.srcElement; if ("unselectable" in eventTarget) @@ -391,7 +393,7 @@ function DragdropHandler(mouseHandler) { if (editor.getDragDelay()) { // https://code.google.com/p/chromium/issues/detail?id=286700 if (useragent.isWebKit) { - self.cancelDrag = true; + this.cancelDrag = true; var mouseTarget = editor.container; mouseTarget.draggable = true; } diff --git a/lib/ace/mouse/multi_select_handler.js b/lib/ace/mouse/multi_select_handler.js index 2e0cda7b..dc01bd6c 100644 --- a/lib/ace/mouse/multi_select_handler.js +++ b/lib/ace/mouse/multi_select_handler.js @@ -105,7 +105,8 @@ function onMouseDown(e) { } var oldRange = selection.rangeList.rangeAtPoint(pos); - + + editor.$blockScrolling++; editor.once("mouseup", function() { var tmpSel = selection.toOrientedRange(); @@ -118,6 +119,7 @@ function onMouseDown(e) { } selection.addRange(tmpSel); } + editor.$blockScrolling--; }); } else if (alt && button == 0) {