Ticket #3505: 3505_2.patch
| File 3505_2.patch, 1.6 KB (added by , 17 years ago) |
|---|
-
_source/core/dom/range.js
31 31 // V2 32 32 var execContentsAction = function( range, action, docFrag ) 33 33 { 34 range.optimizeBookmark(); 35 34 36 var startNode = range.startContainer; 35 37 var endNode = range.endContainer; 36 38 … … 653 655 } 654 656 }, 655 657 658 /** 659 * Move the range out of bookmark nodes if they're been the container. 660 */ 661 optimizeBookmark: function() 662 { 663 var startNode = this.startContainer, 664 endNode = this.endContainer; 665 666 if ( startNode.is && startNode.is( 'span' ) 667 && startNode.hasAttribute( '_fck_bookmark' ) ) 668 this.setStartAt( startNode, CKEDITOR.POSITION_BEFORE_START ); 669 if ( endNode && endNode.is && endNode.is( 'span' ) 670 && endNode.hasAttribute( '_fck_bookmark' ) ) 671 this.setEndAt( endNode, CKEDITOR.POSITION_AFTER_END ); 672 }, 673 656 674 trim : function( ignoreStart, ignoreEnd ) 657 675 { 658 676 var startContainer = this.startContainer; … … 1487 1505 else if ( editableElement ) 1488 1506 break ; // If we already found an editable element, stop the loop. 1489 1507 1490 targetElement = targetElement.getFirst(); 1508 // Avoid anchoring inside bookmark nodes. 1509 if ( editableElement 1510 && ( editableElement.getName( 'span' ) 1511 && editableElement.hasAttribute( '_fck_bookmark' ) ) ) 1512 targetElement = editableElement.getNext(); 1513 else 1514 targetElement = targetElement.getFirst(); 1491 1515 } 1492 1516 1493 1517 if ( editableElement )
