JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.4.2
[ckeditor.git] / _source / core / dom / range.js
index 5846484..b43a82d 100644 (file)
@@ -3,6 +3,9 @@ Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
+/**\r
+ * @class\r
+ */\r
 CKEDITOR.dom.range = function( document )\r
 {\r
        this.startContainer     = null;\r
@@ -1300,7 +1303,8 @@ CKEDITOR.dom.range = function( document )
                                        }\r
                                }\r
 \r
-                               var walker = new CKEDITOR.dom.walker( walkerRange );\r
+                               var walker = new CKEDITOR.dom.walker( walkerRange ),\r
+                                       isBookmark = CKEDITOR.dom.walker.bookmark();\r
 \r
                                walker.evaluator = function( node )\r
                                {\r
@@ -1311,6 +1315,9 @@ CKEDITOR.dom.range = function( document )
                                var currentElement;\r
                                walker.guard = function( node, movingOut )\r
                                {\r
+                                       if ( isBookmark( node ) )\r
+                                               return true;\r
+\r
                                        // Stop when we're shrink in element mode while encountering a text node.\r
                                        if ( mode == CKEDITOR.SHRINK_ELEMENT && node.type == CKEDITOR.NODE_TEXT )\r
                                                return false;\r
@@ -1429,7 +1436,7 @@ CKEDITOR.dom.range = function( document )
                        // Fixing invalid range end inside dtd empty elements.\r
                        if( endNode.type == CKEDITOR.NODE_ELEMENT\r
                                && CKEDITOR.dtd.$empty[ endNode.getName() ] )\r
-                               endNode = endNode.getParent(), endOffset = endNode.getIndex() + 1;\r
+                               endOffset = endNode.getIndex() + 1, endNode = endNode.getParent();\r
 \r
                        this.endContainer       = endNode;\r
                        this.endOffset          = endOffset;\r
@@ -1864,17 +1871,13 @@ CKEDITOR.ENLARGE_ELEMENT = 1;
 CKEDITOR.ENLARGE_BLOCK_CONTENTS = 2;\r
 CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS = 3;\r
 \r
-/**\r
- * Check boundary types.\r
- * @see CKEDITOR.dom.range.prototype.checkBoundaryOfElement\r
- */\r
+// Check boundary types.\r
+// @see CKEDITOR.dom.range.prototype.checkBoundaryOfElement\r
 CKEDITOR.START = 1;\r
 CKEDITOR.END = 2;\r
 CKEDITOR.STARTEND = 3;\r
 \r
-/**\r
- * Shrink range types.\r
- * @see CKEDITOR.dom.range.prototype.shrink\r
- */\r
+// Shrink range types.\r
+// @see CKEDITOR.dom.range.prototype.shrink\r
 CKEDITOR.SHRINK_ELEMENT = 1;\r
 CKEDITOR.SHRINK_TEXT = 2;\r