Ticket #6192: 6192_4.patch

File 6192_4.patch, 1.3 KB (added by fredck, 5 years ago)
  • _source/plugins/selection/plugin.js

     
    673673                                        // tranform the native ranges in CKEDITOR.dom.range
    674674                                        // instances.
    675675
    676                                         var ranges = [];
    677                                         var sel = this.getNative();
     676                                        var ranges = [],
     677                                                range,
     678                                                doc = this.document,
     679                                                sel = this.getNative();
    678680
    679681                                        if ( !sel )
    680                                                 return [];
     682                                                return ranges;
    681683
     684                                        // On WebKit, it may happen that we'll have no selection
     685                                        // available. We normalize it here by replicating the
     686                                        // behavior of other browsers.
     687                                        if ( !sel.rangeCount )
     688                                        {
     689                                                range = new CKEDITOR.dom.range( doc );
     690                                                range.moveToElementEditStart( doc.getBody() );
     691                                                ranges.push( range );
     692                                        }
     693
    682694                                        for ( var i = 0 ; i < sel.rangeCount ; i++ )
    683695                                        {
    684696                                                var nativeRange = sel.getRangeAt( i );
    685                                                 var range = new CKEDITOR.dom.range( this.document );
    686697
     698                                                range = new CKEDITOR.dom.range( doc );
     699
    687700                                                range.setStart( new CKEDITOR.dom.node( nativeRange.startContainer ), nativeRange.startOffset );
    688701                                                range.setEnd( new CKEDITOR.dom.node( nativeRange.endContainer ), nativeRange.endOffset );
    689702                                                ranges.push( range );
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy