Ticket #3618: 3618_3.patch

File 3618_3.patch, 1.8 KB (added by Garry Yao, 11 years ago)
  • _source/plugins/list/plugin.js

     
    476476                        for ( i = 0 ; i < listsCreated.length ; i++ )
    477477                        {
    478478                                listNode = listsCreated[i];
    479                                 var stopFlag = false,
    480                                         currentNode = listNode;
     479                                var mergeSibling, listCommand = this;
     480                                ( mergeSibling = function( rtl ){
    481481
    482                                 while ( !stopFlag )
    483                                 {
    484                                         currentNode = currentNode.getNext();
    485                                         if ( currentNode && currentNode.type == CKEDITOR.NODE_TEXT && emptyTextRegex.test( currentNode.getText() ) )
    486                                                 continue;
    487                                         stopFlag = true;
    488                                 }
     482                                        var sibling = listNode[ rtl ? 'getPrevious' : 'getNext' ].call( listNode, true );
     483                                        if ( sibling && sibling.getName &&
     484                                             sibling.getName() == listCommand.type )
     485                                        {
     486                                                sibling.remove();
     487                                                sibling.moveChildren( listNode );
     488                                        }
     489                                } )();
    489490
    490                                 if ( currentNode && currentNode.getName() == this.type )
    491                                 {
    492                                         currentNode.remove();
    493                                         currentNode.moveChildren( listNode );
    494                                 }
     491                                mergeSibling( true );
     492                        }
    495493
    496                                 stopFlag = false;
    497                                 currentNode = listNode;
    498                                 while ( !stopFlag )
    499                                 {
    500                                         currentNode = currentNode.getNext();
    501                                         if ( currentNode && currentNode.type == CKEDITOR.NODE_TEXT && emptyTextRegex.test( currentNode.getText() ) )
    502                                                 continue;
    503                                         stopFlag = true;
    504                                 }
    505                                 if ( currentNode && currentNode.getName() == this.type  )
    506                                 {
    507                                         currentNode.remove();
    508                                         currentNode.moveChildren( listNode, true );
    509                                 }
    510                         }
    511 
    512494                        // Clean up, restore selection and update toolbar button states.
    513495                        CKEDITOR.dom.element.clearAllMarkers( database );
    514496                        selection.selectBookmarks( bookmarks );
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy