From a2cf7c41b97a587d90188b83e4d15da1567a54b4 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Wed, 09 Apr 2014 02:48:28 -0400
Subject: [PATCH] Fix accidental key replacements

---
 program/js/tiny_mce/themes/advanced/js/source_editor.js |   54 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 35 insertions(+), 19 deletions(-)

diff --git a/program/js/tiny_mce/themes/advanced/js/source_editor.js b/program/js/tiny_mce/themes/advanced/js/source_editor.js
index af2231c..dd5e366 100644
--- a/program/js/tiny_mce/themes/advanced/js/source_editor.js
+++ b/program/js/tiny_mce/themes/advanced/js/source_editor.js
@@ -2,7 +2,7 @@
 tinyMCEPopup.onInit.add(onLoadInit);
 
 function saveContent() {
-	tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value);
+	tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value, {source_view : true});
 	tinyMCEPopup.close();
 }
 
@@ -13,10 +13,10 @@
 	if (tinymce.isGecko)
 		document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck");
 
-	document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent();
+	document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent({source_view : true});
 
 	if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) {
-		setWrap('soft');
+		turnWrapOn();
 		document.getElementById('wraped').checked = true;
 	}
 
@@ -37,26 +37,42 @@
 	}
 }
 
-function toggleWordWrap(elm) {
-	if (elm.checked)
-		setWrap('soft');
-	else
-		setWrap('off');
+function setWhiteSpaceCss(value) {
+	var el = document.getElementById('htmlSource');
+	tinymce.DOM.setStyle(el, 'white-space', value);
 }
 
-var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
+function turnWrapOff() {
+	if (tinymce.isWebKit) {
+		setWhiteSpaceCss('pre');
+	} else {
+		setWrap('off');
+	}
+}
+
+function turnWrapOn() {
+	if (tinymce.isWebKit) {
+		setWhiteSpaceCss('pre-wrap');
+	} else {
+		setWrap('soft');
+	}
+}
+
+function toggleWordWrap(elm) {
+	if (elm.checked) {
+		turnWrapOn();
+	} else {
+		turnWrapOff();
+	}
+}
 
 function resizeInputs() {
-	var el = document.getElementById('htmlSource');
+	var vp = tinyMCEPopup.dom.getViewPort(window), el;
 
-	if (!tinymce.isIE) {
-		 wHeight = self.innerHeight - 65;
-		 wWidth = self.innerWidth - 16;
-	} else {
-		 wHeight = document.body.clientHeight - 70;
-		 wWidth = document.body.clientWidth - 16;
+	el = document.getElementById('htmlSource');
+
+	if (el) {
+		el.style.width = (vp.w - 20) + 'px';
+		el.style.height = (vp.h - 65) + 'px';
 	}
-
-	el.style.height = Math.abs(wHeight) + 'px';
-	el.style.width  = Math.abs(wWidth) + 'px';
 }

--
Gitblit v1.9.1