Changeset 6618 for CKEditor/trunk


Ignore:
Timestamp:
03/28/2011 06:11:30 AM (4 years ago)
Author:
garry.yao
Message:

#7358: Regression of [6461] which breaks enter key behavior on empty block.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/_source/plugins/selection/plugin.js

    r6594 r6618  
    7070
    7171        // #### checkSelectionChange : END
     72
     73        function rangeRequiresFix( range )
     74        {
     75                function isInlineCt( node )
     76                {
     77                        return node && node.type == CKEDITOR.NODE_ELEMENT
     78                                        && node.getName() in CKEDITOR.dtd.$removeEmpty;
     79                }
     80
     81                var start = range.startContainer,
     82                        offset = range.startOffset;
     83
     84                if ( start.type == CKEDITOR.NODE_TEXT )
     85                        return false;
     86
     87                // 1. Empty inline element. <span>^</span>
     88                // 2. Adjoin to inline element. <p><strong>text</strong>^</p>
     89                return !CKEDITOR.tools.trim( start.getHtml() ) ? isInlineCt( start ) : isInlineCt( start.getChild( offset - 1 ) ) || isInlineCt( start.getChild( offset ) )
     90        }
    7291
    7392        var selectAllCmd =
     
    159178                                                switch ( e.data.keyCode )
    160179                                                {
     180                                                        case 13 :       // ENTER
     181                                                        case CKEDITOR.SHIFT + 13 :      // SHIFT-ENTER
    161182                                                        case 37 :       // LEFT-ARROW
    162183                                                        case 39 :       // RIGHT-ARROW
     
    164185                                                                removeFillingChar( editor.document );
    165186                                                }
    166                                         });
     187                                        }, null, null, 10 );
    167188
    168189                                var fillingCharBefore;
     
    12571278                                        }
    12581279
    1259                                         if ( range.collapsed && CKEDITOR.env.webkit )
     1280                                        if ( range.collapsed
     1281                                                        && CKEDITOR.env.webkit
     1282                                                        && rangeRequiresFix( range ) )
    12601283                                        {
    12611284                                                // Append a zero-width space so WebKit will not try to
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy