X-Git-Url: https://jasonwoof.com/gitweb/?p=ckeditor.git;a=blobdiff_plain;f=_source%2Fplugins%2Fwysiwygarea%2Fplugin.js;h=1b81be2bdade9ffe163f6094ba3284f8475e3b03;hp=7657a198dc00ece8a6bde2fa62d8cb7f1ce21b06;hb=6e682412d5cc0dfaedb376482e585bf2989c6863;hpb=2f22c0c38f17e75be5541089076885442aaa2377
diff --git a/_source/plugins/wysiwygarea/plugin.js b/_source/plugins/wysiwygarea/plugin.js
index 7657a19..1b81be2 100644
--- a/_source/plugins/wysiwygarea/plugin.js
+++ b/_source/plugins/wysiwygarea/plugin.js
@@ -13,7 +13,9 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Matching an empty paragraph at the end of document.
var emptyParagraphRegexp = /(^|
]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:
]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi;
- var notWhitespaceEval = CKEDITOR.dom.walker.whitespaces( true );
+ var notWhitespaceEval = CKEDITOR.dom.walker.whitespaces( true ),
+ notBogus = CKEDITOR.dom.walker.bogus( true ),
+ notEmpty = function( node ) { return notWhitespaceEval( node ) && notBogus( node ); };
// Elements that could blink the cursor anchoring beside it, like hr, page-break. (#6554)
function nonEditable( element )
@@ -267,16 +269,28 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
{
range.moveToPosition( lastElement, CKEDITOR.POSITION_AFTER_END );
- // If we're inserting a block element immediatelly followed by
- // another block element, the selection must move there. (#3100,#5436)
+ // If we're inserting a block element immediately followed by
+ // another block element, the selection must be optimized. (#3100,#5436,#8950)
if ( isBlock )
{
- var next = lastElement.getNext( notWhitespaceEval ),
+ var next = lastElement.getNext( notEmpty ),
nextName = next && next.type == CKEDITOR.NODE_ELEMENT && next.getName();
- // Check if it's a block element that accepts text.
- if ( nextName && CKEDITOR.dtd.$block[ nextName ] && CKEDITOR.dtd[ nextName ]['#'] )
+ // If the next one is a text block, move cursor to the start of it's content.
+ if ( nextName && CKEDITOR.dtd.$block[ nextName ] )
+ {
+ if ( CKEDITOR.dtd[ nextName ][ '#' ] )
+ range.moveToElementEditStart( next );
+ // Otherwise move cursor to the before end of the last element.
+ else
+ range.moveToElementEditEnd( lastElement );
+ }
+ // Open a new line if the block is inserted at the end of parent.
+ else if ( !next )
+ {
+ next = range.fixBlock( true, this.config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p' );
range.moveToElementEditStart( next );
+ }
}
}
@@ -476,7 +490,11 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var fixForBody = ( editor.config.enterMode != CKEDITOR.ENTER_BR && editor.config.autoParagraph !== false )
? editor.config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p' : false;
- var frameLabel = editor.lang.editorTitle.replace( '%1', editor.name );
+ var frameLabel = editor.lang.editorTitle.replace( '%1', editor.name ),
+ frameDesc = editor.lang.editorHelp;
+
+ if ( CKEDITOR.env.ie )
+ frameLabel += ', ' + frameDesc;
var win = CKEDITOR.document.getWindow();
var contentDomReadyHandler;
@@ -520,10 +538,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
:
'';
+ var labelId = CKEDITOR.tools.getNextId();
iframe = CKEDITOR.dom.element.createFromHtml( '