Index: _source/core/dom/range.js =================================================================== --- _source/core/dom/range.js (revision 3605) +++ _source/core/dom/range.js (working copy) @@ -687,9 +687,6 @@ var startContainer = this.startContainer; var startOffset = this.startOffset; - var endContainer = this.endContainer; - var endOffset = this.endOffset; - if ( !ignoreStart && startContainer && startContainer.type == CKEDITOR.NODE_TEXT ) { // If the offset is zero, we just insert the new node before @@ -725,6 +722,9 @@ this.setStart( startContainer, startOffset ); } + var endContainer = this.endContainer; + var endOffset = this.endOffset; + if ( !ignoreEnd && endContainer && !this.collapsed && endContainer.type == CKEDITOR.NODE_TEXT ) { // If the offset is zero, we just insert the new node before Index: _source/tests/core/dom/range.html =================================================================== --- _source/tests/core/dom/range.html (revision 3477) +++ _source/tests/core/dom/range.html Wed Jun 03 22:02:22 CST 2009 @@ -2170,6 +2170,24 @@ assert.isFalse( range.checkEndOfBlock() ); }, + /** + * Test trim with text range. + */ + test_trim : function() + { + var text = doc.getById( '_trim_ct').getFirst(); + var range = new CKEDITOR.dom.range(); + range.setStart(text, 2); + range.setEnd(text, 6); + range.trim(); + + assert.isFalse( range.collapsed ); + assert.isTrue( range.startContainer.equals( doc.getById( '_trim_ct') ) ); + assert.areEqual( range.startOffset, 1 ); + assert.isTrue( range.endContainer.equals( doc.getById( '_trim_ct') ) ); + assert.areEqual( range.endOffset, 2 ); + }, + ///////////// setUp : function() @@ -2327,6 +2345,7 @@
Test List
Item Enlarge
Test Block
Enlarge
Test trim