From 5d97f70a4e6310aa87bd1dbd5ec18241e37bf8d1 Mon Sep 17 00:00:00 2001 From: nightwing Date: Sun, 24 Mar 2013 17:11:55 +0400 Subject: [PATCH] properly remove old selectionMarkers --- lib/ace/lib/event_emitter.js | 9 ++++----- lib/ace/mouse/mouse_handler.js | 1 + lib/ace/mouse/multi_select_handler.js | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/ace/lib/event_emitter.js b/lib/ace/lib/event_emitter.js index a359a9a7..5e4f6ec1 100644 --- a/lib/ace/lib/event_emitter.js +++ b/lib/ace/lib/event_emitter.js @@ -79,11 +79,10 @@ EventEmitter._signal = function(eventName, e) { EventEmitter.once = function(eventName, callback) { var _self = this; - var newCallback = function() { - fun && fun.apply(null, arguments); - _self.removeEventListener(event, newCallback); - }; - this.addEventListener(event, newCallback); + callback && this.addEventListener(eventName, function newCallback() { + _self.removeEventListener(eventName, newCallback); + callback.apply(null, arguments); + }); }; diff --git a/lib/ace/mouse/mouse_handler.js b/lib/ace/mouse/mouse_handler.js index 74fc4872..4ff31b2f 100644 --- a/lib/ace/mouse/mouse_handler.js +++ b/lib/ace/mouse/mouse_handler.js @@ -121,6 +121,7 @@ var MouseHandler = function(editor) { renderer.$moveTextAreaToCursor(); } self.isMousePressed = false; + self.onMouseEvent("mouseup", e) }; var onCaptureInterval = function() { diff --git a/lib/ace/mouse/multi_select_handler.js b/lib/ace/mouse/multi_select_handler.js index 8a6e2a11..2e0cda7b 100644 --- a/lib/ace/mouse/multi_select_handler.js +++ b/lib/ace/mouse/multi_select_handler.js @@ -106,7 +106,7 @@ function onMouseDown(e) { var oldRange = selection.rangeList.rangeAtPoint(pos); - event.capture(editor.container, function(){}, function() { + editor.once("mouseup", function() { var tmpSel = selection.toOrientedRange(); if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))