\r
// Convert the array back to a DOM forest (yes we might have a few subtrees now).\r
// And replace the old list with the new forest.\r
- var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode, 0 );\r
+ var newListDir = listNode.getAttribute( 'dir' ) || listNode.getStyle( 'direction' );\r
+ var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode, newListDir );\r
\r
// Avoid nested <li> after outdent even they're visually same,\r
// recording them for later refactoring.(#3982)\r
ranges = selection && selection.getRanges( true ),\r
range;\r
\r
+ var skipBookmarks = function( node )\r
+ {\r
+ return ! node.hasAttribute( '_cke_bookmark' );\r
+ };\r
+\r
var iterator = ranges.createIterator();\r
while ( ( range = iterator.getNextRange() ) )\r
{\r
+ // Do not indent body. (#6138)\r
+ range.shrink( CKEDITOR.SHRINK_ELEMENT );\r
+ if ( range.endContainer.getName() == 'body' )\r
+ range.setEndAt( range.endContainer.getLast( skipBookmarks ), CKEDITOR.POSITION_BEFORE_END );\r
+\r
var startContainer = range.startContainer,\r
endContainer = range.endContainer,\r
rangeRoot = range.getCommonAncestor(),\r