Changeset 3894


Ignore:
Timestamp:
07/14/2009 12:46:34 PM (5 years ago)
Author:
garry.yao
Message:

Fixing #3836: Remove list in enterMode=BR will merge sibling text to one line.

Location:
CKEditor/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/CHANGES.html

    r3893 r3894  
    130130                <li><a href="http://dev.fckeditor.net/ticket/3742">#3742</a> : Fixed wrong dialog layout for dialogs without tab bar in IE RTL mode .</li> 
    131131                <li><a href="http://dev.fckeditor.net/ticket/3671">#3671</a> : Fixed body fixing should be applied to the real type under fake elements.</li> 
     132                <li><a href="http://dev.fckeditor.net/ticket/3836">#3836</a> : Fixed remove list in enterMode=BR will merge sibling text to one line.</li> 
    132133        </ul> 
    133134        <h3> 
  • CKEditor/trunk/_source/plugins/list/plugin.js

    r3771 r3894  
    336336 
    337337                var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode ); 
     338 
     339                // Compensate a <br> before the first node if the previous node of list is a non-blocks.(#3836)  
     340                var docFragment = newList.listNode, firstNode, previousNode; 
     341                if ( ( firstNode = docFragment.getFirst() ) 
     342                         && !( firstNode.is && firstNode.isBlockBoundary() ) 
     343                         && ( previousNode = groupObj.root.getPrevious( true ) ) 
     344                         && !( previousNode.is && previousNode.isBlockBoundary( { br : 1 } ) ) ) 
     345                        editor.document.createElement( 'br' ).insertBefore( firstNode ); 
     346 
    338347                // If groupObj.root is the last element in its parent, or its nextSibling is a <br>, then we should 
    339348                // not add a <br> after the final item. So, check for the cases and trim the <br>. 
     
    343352                                newList.listNode.getLast().remove(); 
    344353                } 
    345                 newList.listNode.replace( groupObj.root ); 
     354                docFragment.replace( groupObj.root ); 
    346355        } 
    347356 
  • CKEditor/trunk/_source/tests/plugins/list/list.html

    r3781 r3894  
    162162                        }, 
    163163 
     164                        /** 
     165                         *  Test remove list first list item not merging with previous text node. 
     166                         */ 
     167                        test_ticket_3836 : function() 
     168                        { 
     169                                prepareEditor( 'test_ticket_3836_editor', null, 
     170                                        { enterMode : CKEDITOR.ENTER_BR }, 
     171                                        function( editor ) 
     172                                        { 
     173                                                this.resume( function() 
     174                                                { 
     175                                                        editor.focus(); 
     176 
     177                                                        var doc = editor.document, 
     178                                                                range = new CKEDITOR.dom.range( doc ); 
     179                                                        setRange( range, [ 1, 1, 0, 0 ], [ 1, 1, 1, 1 ] ); 
     180                                                        debugger; 
     181                                                        var sel = editor.getSelection(); 
     182                                                        sel.selectRanges( [ range ] ); 
     183 
     184                                                        // Waiting for 'comand state' effected. 
     185                                                        this.wait( function(){ 
     186                                                                // Remove list. 
     187                                                                editor.execCommand( 'bulletedlist' ); 
     188                                                                assert.areSame( getTextAreaValue( 'test_ticket_3836_result' ), 
     189                                                                        editor.getData(), 
     190                                                                        'Remove list result not correct.' ); 
     191                                                        }, 1000 ); 
     192 
     193                                                } ); 
     194                                        }, this ); 
     195                                        this.wait(); 
     196                        }, 
     197 
    164198                        name :document.title 
    165199                }; 
     
    175209<textarea id="test_ticket_3773_editor"><ol><li>line1</li><li>line2</li></ol></textarea> 
    176210<textarea id="test_ticket_3773_result">line1<br />line2</textarea> 
     211<textarea id="test_ticket_3836_editor">line1<ul><li>item1</li><li>item2</li></ul>line2</textarea> 
     212<textarea id="test_ticket_3836_result">line1<br />item1<br />item2<br />line2</textarea> 
    177213</body> 
    178214</html> 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy