/*\r
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.html or http://ckeditor.com/license\r
*/\r
\r
\r
target.add( element );\r
\r
+ if ( element.name == 'pre' )\r
+ inPre = false;\r
+\r
+ if ( element.name == 'textarea' )\r
+ inTextarea = false;\r
+\r
+\r
if ( element.returnPoint )\r
{\r
currentNode = element.returnPoint;\r
\r
currentNode = candidate;\r
\r
- if ( currentNode.name == 'pre' )\r
- inPre = false;\r
-\r
- if ( currentNode.name == 'textarea' )\r
- inTextarea = false;\r
-\r
if ( candidate._.isBlockLike )\r
sendPendingBRs();\r
\r
return;\r
}\r
\r
+ var currentName = currentNode.name,\r
+ currentDtd = currentName ? ( CKEDITOR.dtd[ currentName ]\r
+ || ( currentNode._.isBlockLike ?\r
+ CKEDITOR.dtd.div : CKEDITOR.dtd.span ) ) : rootDtd;\r
+\r
+ // Fix orphan text in list/table. (#8540) (#8870)\r
+ if ( !inTextarea &&\r
+ !currentDtd [ '#' ] &&\r
+ currentName in nonBreakingBlocks )\r
+ {\r
+ parser.onTagOpen( currentName in listBlocks ? 'li' :\r
+ currentName == 'dl' ? 'dd' :\r
+ currentName == 'table' ? 'tr' :\r
+ currentName == 'tr' ? 'td' : '' );\r
+ parser.onText( text );\r
+ return;\r
+ }\r
+\r
sendPendingBRs();\r
checkPending();\r
\r