JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.5.3
[ckeditor.git] / _source / core / htmlparser / element.js
index 69bacda..84a452e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
@@ -34,11 +34,20 @@ CKEDITOR.htmlParser.element = function( name, attributes )
         */\r
        this.children = [];\r
 \r
-       var tagName = attributes._cke_real_element_type || name;\r
+       var tagName = attributes[ 'data-cke-real-element-type' ] || name || '';\r
+\r
+       // Reveal the real semantic of our internal custom tag name (#6639).\r
+       var internalTag = tagName.match( /^cke:(.*)/ );\r
+       internalTag && ( tagName = internalTag[ 1 ] );\r
 \r
        var dtd                 = CKEDITOR.dtd,\r
-               isBlockLike     = !!( dtd.$nonBodyContent[ tagName ] || dtd.$block[ tagName ] || dtd.$listItem[ tagName ] || dtd.$tableContent[ tagName ] || dtd.$nonEditable[ tagName ] || tagName == 'br' ),\r
-               isEmpty         = !!dtd.$empty[ name ];\r
+               isBlockLike     = !!( dtd.$nonBodyContent[ tagName ]\r
+                               || dtd.$block[ tagName ]\r
+                               || dtd.$listItem[ tagName ]\r
+                               || dtd.$tableContent[ tagName ]\r
+                               || dtd.$nonEditable[ tagName ]\r
+                               || tagName == 'br' ),\r
+               isEmpty = !!dtd.$empty[ name ];\r
 \r
        this.isEmpty    = isEmpty;\r
        this.isUnknown  = !dtd[ name ];\r
@@ -118,7 +127,7 @@ CKEDITOR.htmlParser.element = function( name, attributes )
                                {\r
                                        var writer = new CKEDITOR.htmlParser.basicWriter();\r
                                        CKEDITOR.htmlParser.fragment.prototype.writeChildrenHtml.call( element, writer, filter );\r
-                                       element.children = new CKEDITOR.htmlParser.fragment.fromHtml( writer.getHtml() ).children;\r
+                                       element.children = new CKEDITOR.htmlParser.fragment.fromHtml( writer.getHtml(), 0, element.clone() ).children;\r
                                        isChildrenFiltered = 1;\r
                                }\r
                        };\r