Ticket #5079: 5079_2.patch

File 5079_2.patch, 1.2 KB (added by Garry Yao, 10 years ago)
  • _source/plugins/pagebreak/plugin.js

     
    8282                // Creates the fake image used for this element.
    8383                breakObject = editor.createFakeElement( breakObject, 'cke_pagebreak', 'div' );
    8484
    85                 var ranges = editor.getSelection().getRanges();
     85                var selection = editor.getSelection(),
     86                                ranges = selection && selection.getRanges();
    8687
    87                 for ( var range, i = 0 ; i < ranges.length ; i++ )
     88                for ( var range, i = 0; i < ranges.length; i++ )
    8889                {
    8990                        range = ranges[ i ];
    9091
    91                         if ( i > 0 )
    92                                 breakObject = breakObject.clone( true );
     92                        var current;
     93                        // Split up only inline elements.
     94                        while ( ( current = range.getCommonAncestor( false, true ) )
     95                                        && CKEDITOR.dtd.$inline[ current.getName() ] )
     96                                range.splitElement( current );
    9397
    94                         range.splitBlock( 'p' );
     98                        i && ( breakObject = breakObject.clone( true ) );
    9599                        range.insertNode( breakObject );
     100                        range.setStartAfter( breakObject );
    96101                }
     102
     103                selection.selectRanges( ranges );
    97104        }
    98105};
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy