Changeset 6391


Ignore:
Timestamp:
01/28/11 17:09:01 (5 years ago)
Author:
garry.yao
Message:

#7087: Fixing regressions from #6373.

Location:
CKEditor/trunk/_source
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/_source/core/dom/range.js

    r6373 r6391  
    824824                },
    825825
    826                 enlarge : function( unit )
     826                /**
     827                 * Expands the range so that partial units are completely contained.
     828                 * @param unit {Number} The unit type to expand with.
     829                 * @param {Boolean} [excludeBrs=false] Whether include line-breaks when expanding.
     830                 */
     831                enlarge : function( unit, excludeBrs )
    827832                {
    828833                        switch ( unit )
     
    945950                                                                // We need to check for the bookmark attribute because IE insists on
    946951                                                                // rendering the display:none nodes we use for bookmarks. (#3363)
    947                                                                 if ( sibling.$.offsetWidth > 0 && !sibling.data( 'cke-bookmark' ) )
     952                                                                // Line-breaks (br) are rendered with zero width, which we don't want to include. (#7041)
     953                                                                if ( ( sibling.$.offsetWidth > 0 || excludeBrs && sibling.is( 'br' ) ) && !sibling.data( 'cke-bookmark' ) )
    948954                                                                {
    949955                                                                        // We'll accept it only if we need
     
    10801086                                                                        endTop = enlargeable;
    10811087                                                                else if ( enlargeable )
    1082                                                                 {
    1083                                                                         var bogus = enlargeable.isBlockBoundary() && enlargeable.getBogus();
    1084 
    1085                                                                         // Exclude bogus <br /> at the end of block.
    1086                                                                         if ( bogus )
    1087                                                                                 this.setEndBefore( bogus );
    1088                                                                         else
    1089                                                                                 this.setEndAfter( enlargeable );
    1090                                                                 }
     1088                                                                        this.setEndAfter( enlargeable );
    10911089                                                        }
    10921090
     
    11121110                                                                // We need to check for the bookmark attribute because IE insists on
    11131111                                                                // rendering the display:none nodes we use for bookmarks. (#3363)
    1114                                                                 if ( sibling.$.offsetWidth > 0 && !sibling.data( 'cke-bookmark' ) )
     1112                                                                // Line-breaks (br) are rendered with zero width, which we don't want to include. (#7041)
     1113                                                                if ( ( sibling.$.offsetWidth > 0 || excludeBrs && sibling.is( 'br' ) ) && !sibling.data( 'cke-bookmark' ) )
    11151114                                                                {
    11161115                                                                        // We'll accept it only if we need
  • CKEditor/trunk/_source/core/dom/walker.js

    r6382 r6391  
    437437                        return isBookmark( node )
    438438                                        || isWhitespaces( node )
    439                                         || node.type == CKEDITOR.NODE_ELEMENT && node.getName() in CKEDITOR.dtd.$removeEmpty;
     439                                        || node.type == CKEDITOR.NODE_ELEMENT
     440                                        && node.getName() in CKEDITOR.dtd.$inline
     441                                        && !( node.getName() in CKEDITOR.dtd.$empty );
    440442                };
    441443
     
    443445        CKEDITOR.dom.element.prototype.getBogus = function()
    444446        {
    445                 // Bogus are not always at the end, e.g. <p><strong>text<br /></strong></p> (#7070).
     447                // Bogus are not always at the end, e.g. <p><a>text<br /></a></p> (#7070).
    446448                var tail = this;
    447449                do { tail = tail.getPreviousSourceNode(); }
  • CKEditor/trunk/_source/plugins/styles/plugin.js

    r6384 r6391  
    431431
    432432                // Expand the range.
    433                 range.enlarge( CKEDITOR.ENLARGE_ELEMENT );
     433                range.enlarge( CKEDITOR.ENLARGE_ELEMENT, 1 );
    434434                range.trim();
    435435
     
    658658                 * that our operation logic can be simpler.
    659659                 */
    660                 range.enlarge( CKEDITOR.ENLARGE_ELEMENT );
     660                range.enlarge( CKEDITOR.ENLARGE_ELEMENT, 1 );
    661661
    662662                var bookmark = range.createBookmark(),
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2015 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy