Ticket #3618: 3618_2.patch

File 3618_2.patch, 2.1 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;
    481 
    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                                 }
    489 
    490                                 if ( currentNode && currentNode.getName() == this.type )
    491                                 {
    492                                         currentNode.remove();
    493                                         currentNode.moveChildren( listNode );
    494                                 }
     479                                var mergeSibling;
     480                                ( mergeSibling = CKEDITOR.tools.bind( function( rtl ){
     481
     482                                        var stopFlag = false,
     483                                                currentNode = listNode;
     484                                        while ( !stopFlag )
     485                                        {
     486                                                currentNode = currentNode[ rtl ? 'getPrevious' : 'getNext' ].call( currentNode );
     487                                                if ( currentNode && currentNode.type == CKEDITOR.NODE_TEXT &&
     488                                                     emptyTextRegex.test( currentNode.getText() ) )
     489                                                        continue;
     490                                                stopFlag = true;
     491                                        }
     492                                        if ( currentNode && currentNode.getName &&
     493                                             currentNode.getName() == this.type )
     494                                        {
     495                                                currentNode.remove();
     496                                                currentNode.moveChildren( listNode, rtl ? true : false );
     497                                        }
     498                                }, this ) )();
    495499
    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                         }
     500                                mergeSibling( true );
     501                        }
    511502
    512503                        // Clean up, restore selection and update toolbar button states.
    513504                        CKEDITOR.dom.element.clearAllMarkers( database );
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy