Changeset 6028


Ignore:
Timestamp:
11/01/10 05:54:19 (4 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 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy