diff --git a/plugins/c9.ide.editors/editor.js b/plugins/c9.ide.editors/editor.js index e063f26b..ea239e6d 100644 --- a/plugins/c9.ide.editors/editor.js +++ b/plugins/c9.ide.editors/editor.js @@ -30,6 +30,7 @@ define(function(require, module, exports) { // Old Editor var lastEditor = doc.editor; if (lastEditor && lastEditor != plugin) { + doc.getState(); lastEditor.unloadDocument(doc, { toEditor: plugin, fromEditor: lastEditor diff --git a/plugins/c9.ide.editors/texteditor.js b/plugins/c9.ide.editors/texteditor.js index bd402ea1..ce92ecda 100644 --- a/plugins/c9.ide.editors/texteditor.js +++ b/plugins/c9.ide.editors/texteditor.js @@ -49,13 +49,13 @@ define(function(require, exports, module) { // Value doc.on("getValue", function get(e) { - return currentDocument == doc + return currentDocument == doc && editor ? editor.value : e.value; }, session); doc.on("setValue", function set(e) { - if (currentDocument == doc) + if (currentDocument == doc && editor) editor.value = e.value || ""; }, session); diff --git a/plugins/c9.ide.ui/lib_apf.js b/plugins/c9.ide.ui/lib_apf.js index a21f623d..aab4125d 100644 --- a/plugins/c9.ide.ui/lib_apf.js +++ b/plugins/c9.ide.ui/lib_apf.js @@ -5541,9 +5541,12 @@ apf.AmlNode = function(){ nextNode = nextNode.nextSibling; } - amlNode.$pHtmlNode.insertBefore(amlNode.$altExt || amlNode.$ext, - nextNode && (nextNode.$altExt || nextNode.$ext) || null); + var htmlNode = amlNode.$altExt || amlNode.$ext; + var nextHtmlNode = nextNode && (nextNode.$altExt || nextNode.$ext) || null; + if (htmlNode.parentNode != amlNode.$pHtmlNode || amlNode.nextSibling != nextHtmlNode) { + amlNode.$pHtmlNode.insertBefore(htmlNode, nextHtmlNode); + } } //Signal node and all it's ancestors