Ticket #4196: 4196.patch

File 4196.patch, 2.0 KB (added by Garry Yao, 14 years ago)
  • _source/plugins/list/plugin.js

     
    356356                compensateBrs( true );
    357357                compensateBrs();
    358358
    359                 var rootParent = groupObj.root.getParent();
    360359                docFragment.replace( groupObj.root );
    361360        }
    362361
     
    445444                                while ( ( block = iterator.getNextParagraph() ) )
    446445                                {
    447446                                        var path = new CKEDITOR.dom.elementPath( block ),
     447                                                pathElements = path.elements,
     448                                                pathElementsCount = pathElements.length,
    448449                                                listNode = null,
    449450                                                processedFlag = false,
    450451                                                blockLimit = path.blockLimit,
    451452                                                element;
    452453
    453454                                        // First, try to group by a list ancestor.
    454                                         for ( var i = 0 ; i < path.elements.length &&
    455                                                   ( element = path.elements[ i ] ) && !element.equals( blockLimit ); i++ )
     455                                        for ( var i = pathElementsCount - 1; i >= 0 && ( element = pathElements[ i ] ); i-- )
    456456                                        {
    457                                                 if ( listNodeNames[ element.getName() ] )
     457                                                if ( listNodeNames[ element.getName() ]
     458                                                         && blockLimit.contains( element ) )     // Don't leak outside block limit (#3940).
    458459                                                {
    459460                                                        // If we've encountered a list inside a block limit
    460461                                                        // The last group object of the block limit element should
  • _source/core/htmlparser/element.js

     
    3535        this.children = [];
    3636
    3737        var dtd                 = CKEDITOR.dtd,
    38                 isBlockLike     = !!( dtd.$block[ name ] || dtd.$listItem[ name ] || dtd.$tableContent[ name ] || dtd.$nonEditable[ name ] ),
     38                isBlockLike     = !!( dtd.$block[ name ] || dtd.$listItem[ name ] || dtd.$tableContent[ name ] || dtd.$nonEditable[ name ] || name == 'br' ),
    3939                isEmpty         = !!dtd.$empty[ name ];
    4040
    4141        this.isEmpty    = isEmpty;
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy