From c72617b03361d1a2c53a7f99c2609665ae5364ee Mon Sep 17 00:00:00 2001 From: nightwing Date: Wed, 12 Mar 2014 03:34:52 +0400 Subject: [PATCH] fix sticky selection if editor loaded into iframe --- lib/ace/mouse/mouse_handler.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/ace/mouse/mouse_handler.js b/lib/ace/mouse/mouse_handler.js index cac4ce42..04e694e4 100644 --- a/lib/ace/mouse/mouse_handler.js +++ b/lib/ace/mouse/mouse_handler.js @@ -112,6 +112,12 @@ var MouseHandler = function(editor) { var self = this; var onMouseMove = function(e) { + if (!e) return; + // if editor is loaded inside iframe, and mouseup event is outside + // we won't recieve it, so we cancel on first mousemove without button + if (useragent.isWebKit && !e.which && self.releaseMouse) + return self.releaseMouse(); + self.x = e.clientX; self.y = e.clientY; mouseMoveHandler && mouseMoveHandler(e); @@ -130,7 +136,7 @@ var MouseHandler = function(editor) { } self.isMousePressed = false; self.$onCaptureMouseMove = self.releaseMouse = null; - self.onMouseEvent("mouseup", e); + e && self.onMouseEvent("mouseup", e); }; var onCaptureInterval = function() {