Ticket #6079: 6079.patch

File 6079.patch, 1.7 KB (added by Frederico Caldeira Knabben, 10 years ago)
  • _source/plugins/find/dialogs/find.js

     
    55
    66(function()
    77{
     8        var isReplace;
     9
    810        function findEvaluator( node )
    911        {
    10                 return node.type == CKEDITOR.NODE_TEXT && node.getLength() > 0 && !node.isReadOnly();
     12                return node.type == CKEDITOR.NODE_TEXT && node.getLength() > 0 && ( !isReplace || !node.isReadOnly() );
    1113        }
    1214
    1315        /**
     
    282284                                this._.highlightRange = null;
    283285                        },
    284286
     287                        isReadOnly : function()
     288                        {
     289                                if ( !this._.highlightRange )
     290                                        return 0;
     291
     292                                return this._.highlightRange.startContainer.isReadOnly();
     293                        },
     294
    285295                        moveBack : function()
    286296                        {
    287297                                var retval = this._.walker.back(),
     
    518528                        replace : function( dialog, pattern, newString, matchCase, matchWord,
    519529                                matchCyclic , isReplaceAll )
    520530                        {
     531                                isReplace = 1;
     532
    521533                                // Successiveness of current replace/find.
    522534                                var result = false;
    523535
    524536                                // 1. Perform the replace when there's already a match here.
    525537                                // 2. Otherwise perform the find but don't replace it immediately.
    526538                                if ( this.matchRange && this.matchRange.isMatched()
    527                                                 && !this.matchRange._.isReplaced )
     539                                                && !this.matchRange._.isReplaced && !this.matchRange.isReadOnly() )
    528540                                {
    529541                                        // Turn off highlight for a while when saving snapshots.
    530542                                        this.matchRange.removeHighlight();
     
    554566                                else
    555567                                        result = this.find( pattern, matchCase, matchWord, matchCyclic, !isReplaceAll );
    556568
     569                                isReplace = 0;
     570
    557571                                return result;
    558572                        }
    559573                };
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy