     @subscribe @model, 'finished-searching', (results) => @generateResultsMessage(results)
 
     @findEditor.editor.on 'contents-modified', =>
-      @runRealtimeSearch() if @findEditor.getText().length > 2
+      @runRealtimeSearch(onlyRunIfChanged: true) if @findEditor.getText().length > 2
 
     atom.workspaceView.command 'find-and-replace:use-selection-as-find-pattern', @setSelectionAsFindPattern
 

    @model.toggleUseRegex()
    if @model.useRegex then @regexOptionButton.addClass('selected') else @regexOptionButton.removeClass('selected')
    @updateOptionsLabel()
    @confirm()

  toggleCaseOption: ->
    @model.toggleCaseSensitive()
    if @model.caseSensitive then @caseOptionButton.addClass('selected') else @caseOptionButton.removeClass('selected')
    @updateOptionsLabel()
    @confirm()

  focusNextElement: (direction) ->
    elements = [@findEditor, @replaceEditor, @pathsEditor].filter (el) -> el.has(':visible').length > 0

    @showResultPane()
    @model.search(@findEditor.getText(), @getPaths(), @replaceEditor.getText(), onlyRunIfChanged: true)

  runRealtimeSearch: (options) ->
    return unless @model.active
    @errorMessages.empty()
    @model.search(@findEditor.getText(), @getPaths(), @replaceEditor.getText(), options)

  replaceAll: ->
    @errorMessages.empty()
