Changeset 7415


Ignore:
Timestamp:
03/23/12 18:31:48 (2 years ago)
Author:
fredck
Message:

#8812 : Resolved issues on the IE native range translation with comments in the DOM.

Location:
CKEditor/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/CHANGES.html

    r7413 r7415  
    8080                <li><a href="http://dev.ckeditor.com/ticket/8774">#8774</a> : Fix entities plugin to allow it to be configured to only output XML entities.</li> 
    8181                <li><a href="http://dev.ckeditor.com/ticket/8602">#8602</a> : Image src is now properly hidden when running data through the data processor.</li> 
     82                <li><a href="http://dev.ckeditor.com/ticket/8812">#8812</a> : Resolved issues on the IE native range translation with comments in the DOM.</li> 
    8283        </ul> 
    8384        <h3> 
  • CKEditor/trunk/_source/plugins/selection/plugin.js

    r7402 r7415  
    846846                                                        index = -1, 
    847847                                                        position, 
    848                                                         distance; 
     848                                                        distance, 
     849                                                        container; 
    849850 
    850851                                                // Binary search over all element childs to test the range to see whether 
     
    897898                                                                child = siblings[ siblings.length - 1 ]; 
    898899 
    899                                                                 if ( child.nodeType == CKEDITOR.NODE_ELEMENT ) 
     900                                                                if ( child.nodeType != CKEDITOR.NODE_TEXT ) 
    900901                                                                        return { container : parent, offset : siblings.length }; 
    901902                                                                else 
     
    905906                                                        // Start the measuring until distance overflows, meanwhile count the text nodes. 
    906907                                                        var i = siblings.length; 
    907                                                         while ( distance > 0 ) 
    908                                                                 distance -= siblings[ --i ].nodeValue.length; 
    909  
    910                                                         return  { container : siblings[ i ], offset : -distance }; 
     908                                                        while ( distance > 0 && i > 0 ) 
     909                                                        { 
     910                                                                sibling = siblings[ --i ]; 
     911                                                                if ( sibling.nodeType == CKEDITOR.NODE_TEXT ) 
     912                                                                { 
     913                                                                        container = sibling; 
     914                                                                        distance -= sibling.nodeValue.length; 
     915                                                                } 
     916                                                        } 
     917 
     918                                                        return  { container : container, offset : -distance }; 
    911919                                                } 
    912920                                                // Test range was one offset beyond OR behind the anchored text node. 
     
    933941                                                                { 
    934942                                                                        sibling = child[ position > 0 ? 'previousSibling' : 'nextSibling' ]; 
    935                                                                         distance -= sibling.nodeValue.length; 
     943                                                                        if ( sibling.nodeType == CKEDITOR.NODE_TEXT ) 
     944                                                                        { 
     945                                                                                distance -= sibling.nodeValue.length; 
     946                                                                                container = sibling; 
     947                                                                        } 
    936948                                                                        child = sibling; 
    937949                                                                } 
     
    943955                                                        } 
    944956 
    945                                                         return { container : child, offset : position > 0 ? -distance : child.nodeValue.length + distance }; 
     957                                                        return { container : container, offset : position > 0 ? -distance : container.nodeValue.length + distance }; 
    946958                                                } 
    947959                                        }; 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy