X-Git-Url: https://jasonwoof.com/gitweb/?p=ckeditor.git;a=blobdiff_plain;f=_source%2Fplugins%2Fenterkey%2Fplugin.js;h=4114516e21f6728705f52569752ce9115d9df07f;hp=5046b1d0ddc9d1b1fb0145b7164f1d96876b7bfa;hb=614511639979907ceb0da3614122a4d8eb963ad4;hpb=039a051ccf3901311661022a30afd60fc38130c9 diff --git a/_source/plugins/enterkey/plugin.js b/_source/plugins/enterkey/plugin.js index 5046b1d..4114516 100644 --- a/_source/plugins/enterkey/plugin.js +++ b/_source/plugins/enterkey/plugin.js @@ -98,7 +98,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license } else { - var newBlock; + var newBlock, + newBlockDir; if ( previousBlock ) { @@ -115,7 +116,11 @@ For licensing, see LICENSE.html or http://ckeditor.com/license newBlock = nextBlock.clone(); if ( !newBlock ) + { newBlock = doc.createElement( blockTag ); + if ( previousBlock && ( newBlockDir = previousBlock.getDirection() ) ) + newBlock.setAttribute( 'dir', newBlockDir ); + } // Force the enter block unless we're talking of a list item. else if ( forceMode && !newBlock.is( 'li' ) ) newBlock.renameNode( blockTag ); @@ -222,15 +227,28 @@ For licensing, see LICENSE.html or http://ckeditor.com/license // If we are at the end of a header block. if ( !forceMode && isEndOfBlock && headerTagRegex.test( startBlockTag ) ) { - // Insert a
after the current paragraph. - doc.createElement( 'br' ).insertAfter( startBlock ); + var newBlock, + newBlockDir; - // A text node is required by Gecko only to make the cursor blink. - if ( CKEDITOR.env.gecko ) - doc.createText( '' ).insertAfter( startBlock ); + if ( newBlockDir = startBlock.getDirection() ) + { + newBlock = doc.createElement( 'div' ); + newBlock.setAttribute( 'dir', newBlockDir ); + newBlock.insertAfter( startBlock ); + range.setStart( newBlock, 0 ); + } + else + { + // Insert a
after the current paragraph. + doc.createElement( 'br' ).insertAfter( startBlock ); - // IE has different behaviors regarding position. - range.setStartAt( startBlock.getNext(), CKEDITOR.env.ie ? CKEDITOR.POSITION_BEFORE_START : CKEDITOR.POSITION_AFTER_START ); + // A text node is required by Gecko only to make the cursor blink. + if ( CKEDITOR.env.gecko ) + doc.createText( '' ).insertAfter( startBlock ); + + // IE has different behaviors regarding position. + range.setStartAt( startBlock.getNext(), CKEDITOR.env.ie ? CKEDITOR.POSITION_BEFORE_START : CKEDITOR.POSITION_AFTER_START ); + } } else {