diff --git a/lib/ace/editor.js b/lib/ace/editor.js index 8f051394..f00f74f6 100644 --- a/lib/ace/editor.js +++ b/lib/ace/editor.js @@ -278,6 +278,10 @@ var Editor = function(renderer, session) { this.setSession = function(session) { if (this.session == session) return; + + // make sure operationEnd events are not emitted to wrong session + if (this.curOp) this.endOperation(); + this.curOp = {}; var oldSession = this.session; if (oldSession) { @@ -377,6 +381,8 @@ var Editor = function(renderer, session) { oldSession: oldSession }); + this.curOp = null; + oldSession && oldSession._signal("changeEditor", {oldEditor: this}); session && session._signal("changeEditor", {editor: this}); };