Ticket #7433: 7433.patch

File 7433.patch, 1.5 KB (added by Garry Yao, 9 years ago)
  • _source/plugins/selection/plugin.js

     
    677677                                                range.collapse( start );
    678678
    679679                                                // Gets the element that encloses the range entirely.
    680                                                 var parent = range.parentElement();
     680                                                var parent = range.parentElement(),
     681                                                        doc = parent.ownerDocument;
    681682
    682683                                                // Empty parent element, e.g. <i>^</i>
    683684                                                if ( !parent.hasChildNodes() )
     
    707708                                                        else if ( position < 0 )
    708709                                                                startIndex = index + 1;
    709710                                                        else
    710                                                                 return { container : parent, offset : getNodeIndex( child ) };
    711                                                 }
     711                                                        {
     712                                                                // IE9 report wrong measurement when range anchors among line-break nodes.
     713                                                                // e.g. <p>text<br />^<br /></p> (#7433)
     714                                                                if ( CKEDITOR.env.ie9Compat && child.tagName == 'BR' )
     715                                                                {
     716                                                                        var bmId = 'cke_marker_hr';
     717                                                                        range.execCommand( 'CreateBookmark', false, bmId );
     718                                                                        child = doc.getElementsByName( bmId )[ 0 ];
     719                                                                        var offset = getNodeIndex( child );
     720                                                                        parent.removeChild( child );
     721                                                                        return { container : parent, offset : offset };
     722                                                                }
     723                                                                else
     724                                                                        return { container : parent, offset : getNodeIndex( child ) };
     725                                                        }
     726                                                }
    712727
    713728                                                // All childs are text nodes,
    714729                                                // or to the right hand of test range are all text nodes. (#6992)
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy