Changeset 6028


Ignore:
Timestamp:
11/01/10 05:54:19 (5 years ago)
Author:
garry.yao
Message:

#6548: regression of [5842] which breaks indentation in enterBr.

File:
1 edited

Legend:

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

    r5996 r6028  
    283283                                range;
    284284
    285                         var skipBookmarks = CKEDITOR.dom.walker.bookmark( 0, 1 );
    286285
    287286                        var iterator = ranges.createIterator();
    288287                        while ( ( range = iterator.getNextRange() ) )
    289288                        {
    290                                 // Do not indent body. (#6138)
    291                                 range.shrink( CKEDITOR.SHRINK_ELEMENT );
    292                                 if ( range.endContainer.getName() == 'body' )
    293                                         range.setEndAt( range.endContainer.getLast( skipBookmarks ), CKEDITOR.POSITION_BEFORE_END );
    294 
    295                                 var startContainer = range.startContainer,
    296                                         endContainer = range.endContainer,
    297                                         rangeRoot = range.getCommonAncestor(),
     289                                var rangeRoot = range.getCommonAncestor(),
    298290                                        nearestListBlock = rangeRoot;
    299291
     
    302294                                        nearestListBlock = nearestListBlock.getParent();
    303295
     296                                // Avoid having selection enclose the entire list. (#6138)
     297                                // [<ul><li>...</li></ul>] =><ul><li>[...]</li></ul>
     298                                if ( !nearestListBlock )
     299                                {
     300                                        var selectedNode = range.getEnclosedNode();
     301                                        if ( selectedNode
     302                                                && selectedNode.type == CKEDITOR.NODE_ELEMENT
     303                                                && selectedNode.getName() in listNodeNames)
     304                                        {
     305                                                range.setStartAt( selectedNode, CKEDITOR.POSITION_AFTER_START );
     306                                                range.setEndAt( selectedNode, CKEDITOR.POSITION_BEFORE_END );
     307                                                nearestListBlock = selectedNode;
     308                                        }
     309                                }
     310
    304311                                // Avoid selection anchors under list root.
    305312                                // <ul>[<li>...</li>]</ul> =>   <ul><li>[...]</li></ul>
    306                                 if ( nearestListBlock && startContainer.type == CKEDITOR.NODE_ELEMENT
    307                                         && startContainer.getName() in listNodeNames )
     313                                if ( nearestListBlock && range.startContainer.type == CKEDITOR.NODE_ELEMENT
     314                                        && range.startContainer.getName() in listNodeNames )
    308315                                {
    309316                                        var walker = new CKEDITOR.dom.walker( range );
     
    312319                                }
    313320
    314                                 if ( nearestListBlock && endContainer.type == CKEDITOR.NODE_ELEMENT
    315                                         && endContainer.getName() in listNodeNames )
     321                                if ( nearestListBlock && range.endContainer.type == CKEDITOR.NODE_ELEMENT
     322                                        && range.endContainer.getName() in listNodeNames )
    316323                                {
    317324                                        walker = new CKEDITOR.dom.walker( range );
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2015 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy