Changeset 7522


Ignore:
Timestamp:
06/27/12 18:52:01 (22 months ago)
Author:
garry.yao
Message:

#9063: Fixed list root styles are not inherited on list items, when decreasing.

Location:
CKEditor/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/CHANGES.html

    r7521 r7522  
    6666                <li><a href="http://dev.ckeditor.com/ticket/9034">#9034</a> : [IE7] Fixed JavaScript error caused by drag-to-select at the bottom of the document.</li> 
    6767                <li><a href="http://dev.ckeditor.com/ticket/9057">#9057</a> : Unexpected block established when decreasing indent of a styled list item.</li> 
     68                <li><a href="http://dev.ckeditor.com/ticket/9063">#9063</a> : Styles on sub-list are lost when decreasing indent of the parent list.</li> 
    6869        </ul> 
    6970        <h3> 
  • CKEditor/trunk/_source/plugins/indent/plugin.js

    r7477 r7522  
    143143                                        listArray[ i ].indent += indentOffset; 
    144144                                        // Make sure the newly created sublist get a brand-new element of the same type. (#5372) 
    145                                         var listRoot = listArray[ i ].parent; 
    146                                         listArray[ i ].parent = new CKEDITOR.dom.element( listRoot.getName(), listRoot.getDocument() ); 
     145                                        if ( indentOffset > 0 ) 
     146                                        { 
     147                                                var listRoot = listArray[ i ].parent; 
     148                                                listArray[ i ].parent = new CKEDITOR.dom.element( listRoot.getName(), listRoot.getDocument() ); 
     149                                        } 
    147150                                } 
    148151 
  • CKEditor/trunk/_source/plugins/list/plugin.js

    r7520 r7522  
    3030                                element.removeAttribute( 'dir' ); 
    3131                } 
     32        } 
     33 
     34        // Inheirt inline styles from another element. 
     35        function inheirtInlineStyles( parent, el ) 
     36        { 
     37                var style = parent.getAttribute( 'style' ); 
     38 
     39                // Put parent styles before child styles. 
     40                style && el.setAttribute( 'style', 
     41                        style.replace( /([^;])$/, '$1;' ) + 
     42                        ( el.getAttribute( 'style' ) || '' ) ); 
    3243        } 
    3344 
     
    110121                        { 
    111122                                var item = listArray[ currentIndex ], 
     123                                        itemParent = item.parent, 
    112124                                        itemGrandParent = item.grandparent; 
    113125 
     
    148160                                else if ( item.indent == -1 && !baseIndex && itemGrandParent ) 
    149161                                { 
     162                                        // We're leaving this parent list, inherit it's inline styles. 
     163                                        var listNode = itemParent.clone(); 
     164                                        if ( listNode.hasAttribute( 'style' ) ) 
     165                                        { 
     166                                                listNode.removeStyle( 'list-style-type' ); 
     167                                                inheirtInlineStyles( listNode, item.element ); 
     168                                        } 
     169                                         
    150170                                        if ( listNodeNames[ itemGrandParent.getName() ] ) 
    151171                                                currentListItem = item.element.clone( false, true ); 
     
    176196                                                                child.setAttribute( 'dir', orgDir ); 
    177197 
    178                                                         // Merge into child styles. 
    179                                                         style && child.setAttribute( 'style', 
    180                                                                                  style.replace( /([^;])$/, '$1;') + 
    181                                                                                  ( child.getAttribute( 'style' ) || '' ) ); 
     198                                                        inheirtInlineStyles( li, child ); 
    182199 
    183200                                                        className && child.addClass( className ); 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy