Roo/htmleditor/TidyWriter.js
[roojs1] / Roo / htmleditor / TidyWriter.js
index 5541b93..f9fb4cc 100644 (file)
@@ -72,11 +72,19 @@ Roo.htmleditor.TidyWriter.prototype = {
         
         var is_short   = empty ? Roo.htmleditor.TidyWriter.shortend_elements.indexOf(name) > -1 : false;
         
+        var i_inline = name == 'BR' ? false : in_inline;
+        if (i_inline && this.lastElementEndsWS()) {
+            i_inline = false;
+        }
 
-        var indentstr = in_inline || this.in_pre ? '' : this.indentstr;
+        var indentstr = i_inline || this.in_pre ? '' : this.indentstr;
+        
+        // e_inline = elements that can be inline, but still allow \n before and after?
+        // only 'BR' ??? any others?
+        var e_inline = name == 'BR' ? false : this.in_inline;
         
         // if this element is inline - then don't add stuff beforehand..
-        if (!in_inline && !this.in_pre) {
+        if (!e_inline && !this.in_pre) {
             this.addLine();
         }
         
@@ -137,6 +145,17 @@ Roo.htmleditor.TidyWriter.prototype = {
          
         
     },
+    
+    lastElementEndsWS : function()
+    {
+        var value = this.html.length > 0 ? this.html[this.html.length-1] : false;
+        if (value === false) {
+            return true;
+        }
+        return value.match(/\s+$/);
+        
+    },
+    
     /**
      * Writes the a end element such as </p>.
      *