Changeset 7384


Ignore:
Timestamp:
03/12/12 18:38:39 (2 years ago)
Author:
garry.yao
Message:

#8345: Locked selection need to be prioritized when dialog changed the locked selection.

Location:
CKEditor/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/CHANGES.html

    r7383 r7384  
    5757                <li><a href="http://dev.ckeditor.com/ticket/8433">#8433</a> : [IE9] Use W3C event model.</li> 
    5858                <li><a href="http://dev.ckeditor.com/ticket/8691">#8691</a> : [IE] Fix paste invalid HTML crashes browser.</li> 
     59                <li><a href="http://dev.ckeditor.com/ticket/8345">#8345</a> : [IE] Selection is properly restored after close Link dialog.</li> 
    5960        </ul> 
    6061        <h3> 
  • CKEditor/trunk/_source/plugins/selection/plugin.js

    r7377 r7384  
    265265                                                                        return; 
    266266 
    267                                                                 // If we have saved a range, restore it at this 
     267                                                                // Give the priority to locked selection since it probably 
     268                                                                // reflects the actual situation, besides locked selection 
     269                                                                // could be interfered because of text nodes normalizing. 
     270                                                                // (#6083, #6987) 
     271                                                                var lockedSelection = doc.getCustomData( 'cke_locked_selection' ); 
     272                                                                if ( lockedSelection ) 
     273                                                                { 
     274                                                                        lockedSelection.unlock( 1 ); 
     275                                                                        lockedSelection.lock(); 
     276                                                                } 
     277                                                                // Then check ff we have saved a range, restore it at this 
    268278                                                                // point. 
    269                                                                 if ( savedRange ) 
     279                                                                else if ( savedRange && restoreEnabled ) 
    270280                                                                { 
    271                                                                         if ( restoreEnabled ) 
    272                                                                         { 
    273                                                                                 // Well not break because of this. 
    274                                                                                 try 
    275                                                                                 { 
    276                                                                                         savedRange.select(); 
    277                                                                                 } 
    278                                                                                 catch (e) 
    279                                                                                 {} 
    280  
    281                                                                                 // Update locked selection because of the normalized text nodes. (#6083, #6987) 
    282                                                                                 var lockedSelection = doc.getCustomData( 'cke_locked_selection' ); 
    283                                                                                 if ( lockedSelection ) 
    284                                                                                 { 
    285                                                                                         lockedSelection.unlock(); 
    286                                                                                         lockedSelection.lock(); 
    287                                                                                 } 
    288                                                                         } 
    289  
     281                                                                        // Well not break because of this. 
     282                                                                        try { savedRange.select(); } catch (e) {} 
    290283                                                                        savedRange = null; 
    291284                                                                } 
  • CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js

    r7374 r7384  
    3131                                this.focus(); 
    3232 
     33                                // Since the insertion might happen from within dialog or menu 
     34                                // where the editor selection might be locked at the moment, 
     35                                // update the locked selection. 
     36                                var selection = this.getSelection(), 
     37                                selIsLocked = selection.isLocked; 
     38 
     39                                selIsLocked && selection.unlock(); 
     40 
    3341                                this.fire( 'saveSnapshot' ); 
    3442 
    3543                                insertFunc.call( this, evt.data ); 
     44 
     45                                selIsLocked && this.getSelection().lock(); 
    3646 
    3747                                // Save snaps after the whole execution completed. 
     
    8494                if ( CKEDITOR.env.ie ) 
    8595                { 
    86                         var selIsLocked = selection.isLocked; 
    87  
    88                         if ( selIsLocked ) 
    89                                 selection.unlock(); 
    90  
    9196                        var $sel = selection.getNative(); 
    9297 
     
    114119 
    115120                        $sel.createRange().pasteHTML( data ); 
    116  
    117                         if ( selIsLocked ) 
    118                                 this.getSelection().lock(); 
    119121                } 
    120122                else 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy