Ticket #3720: 3720.patch

File 3720.patch, 1.7 KB (added by Garry Yao, 10 years ago)
  • _source/plugins/find/dialogs/find.js

     
    505505                                if ( this.matchRange && this.matchRange.isMatched()
    506506                                                && !this.matchRange._.isReplaced )
    507507                                {
     508                                        // Turn off highlight for a while when saving snapshots.
     509                                        this.matchRange.removeHighlight();
    508510                                        var domRange = this.matchRange.toDomRange();
    509511                                        var text = editor.document.createText( newString );
     512
     513                                        // Save undo snaps before and after the replacement.
     514                                        var selection = editor.getSelection();
     515                                        selection.selectRanges( [ domRange ] );
     516                                        editor.fire( 'saveSnapshot' );
     517
    510518                                        domRange.deleteContents();
    511519                                        domRange.insertNode( text );
     520
     521                                        selection.selectRanges( [ domRange ] );
     522                                        editor.fire( 'saveSnapshot' );
     523
    512524                                        this.matchRange.updateFromDomRange( domRange );
     525                                        this.matchRange.highlight();
    513526                                        this.matchRange._.isReplaced = true;
    514527                                        this.replaceCounter++;
    515528                                        result = true;
     
    648661                                                                        onClick : function()
    649662                                                                        {
    650663                                                                                var dialog = this.getDialog();
    651                                                                                 editor.fire( 'saveSnapshot' );
    652664                                                                                if ( !finder.replace( dialog,
    653665                                                                                                        dialog.getValueOf( 'replace', 'txtFindReplace' ),
    654666                                                                                                        dialog.getValueOf( 'replace', 'txtReplace' ),
     
    685697                                                                                var dialog = this.getDialog();
    686698                                                                                var replaceNums;
    687699
    688                                                                                 editor.fire( 'saveSnapshot' );
    689700                                                                                finder.replaceCounter = 0;
    690701                                                                                if ( ( replaceNums = finder.replace( dialog,
    691702                                                                                        dialog.getValueOf( 'replace', 'txtFindReplace' ),
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy