Changeset 6391


Ignore:
Timestamp:
01/28/2011 05:09:01 PM (4 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 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy