X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=_source%2Fplugins%2Fenterkey%2Fplugin.js;fp=_source%2Fplugins%2Fenterkey%2Fplugin.js;h=4114516e21f6728705f52569752ce9115d9df07f;hb=614511639979907ceb0da3614122a4d8eb963ad4;hp=5046b1d0ddc9d1b1fb0145b7164f1d96876b7bfa;hpb=039a051ccf3901311661022a30afd60fc38130c9;p=ckeditor.git
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
{