diff --git a/src/js/simplemde.js b/src/js/simplemde.js index 2630262..a7d2af7 100644 --- a/src/js/simplemde.js +++ b/src/js/simplemde.js @@ -334,7 +334,7 @@ function toggleSideBySide(editor) { var wrapper = cm.getWrapperElement(); var preview = wrapper.nextSibling; var toolbarButton = editor.toolbarElements["side-by-side"]; - + var useSideBySideListener = false; if(/editor-preview-active-side/.test(preview.className)) { preview.className = preview.className.replace( /\s*editor-preview-active-side\s*/g, "" @@ -352,6 +352,7 @@ function toggleSideBySide(editor) { }, 1); toolbarButton.className += " active"; wrapper.className += " CodeMirror-sided"; + useSideBySideListener = true; } // Hide normal preview if active @@ -366,13 +367,20 @@ function toggleSideBySide(editor) { toolbar_div.className = toolbar_div.className.replace(/\s*disabled-for-preview*/g, ""); } - // Start preview with the current text - preview.innerHTML = editor.options.previewRender(editor.value(), preview); - - // Updates preview - cm.on("update", function() { + var sideBySideRenderingFunction = function() { preview.innerHTML = editor.options.previewRender(editor.value(), preview); - }); + }; + + if(!cm.sideBySideRenderingFunction) { + cm.sideBySideRenderingFunction = sideBySideRenderingFunction; + } + + if(useSideBySideListener) { + preview.innerHTML = editor.options.previewRender(editor.value(), preview); + cm.on("update", cm.sideBySideRenderingFunction); + } else { + cm.off("update", cm.sideBySideRenderingFunction); + } }