diff --git a/uppsrc/CodeEditor/CodeEditor.h b/uppsrc/CodeEditor/CodeEditor.h index b198ef6aa..a8dcbfdce 100644 --- a/uppsrc/CodeEditor/CodeEditor.h +++ b/uppsrc/CodeEditor/CodeEditor.h @@ -421,7 +421,7 @@ public: void FindReplace(bool pick_selection, bool pick_text, bool replace); bool Find(bool back, const wchar *text, bool wholeword, bool ignorecase, bool wildcards, bool block); - bool Find(bool back = false, bool blockreplace = false); + bool Find(bool back = false, bool blockreplace = false, bool replace = false); bool GetStringRange(int cursor, int& b, int &e) const; bool GetStringRange(int& b, int &e) const { return GetStringRange(GetCursor(), b, e); } bool FindString(bool back); diff --git a/uppsrc/CodeEditor/FindReplace.cpp b/uppsrc/CodeEditor/FindReplace.cpp index 5a00b292c..932c89201 100644 --- a/uppsrc/CodeEditor/FindReplace.cpp +++ b/uppsrc/CodeEditor/FindReplace.cpp @@ -213,7 +213,7 @@ void CodeEditor::FindReplaceAddHistory() findreplace.replace.AddHistory(); } -bool CodeEditor::Find(bool back, bool blockreplace) +bool CodeEditor::Find(bool back, bool blockreplace, bool replace) { FindReplaceAddHistory(); if(Find(back, (WString)~findreplace.find, findreplace.wholeword, @@ -221,7 +221,7 @@ bool CodeEditor::Find(bool back, bool blockreplace) if(!blockreplace) { if(!findreplace.IsOpen()) { findreplace.NoCenter(); - OpenNormalFindReplace(false); + OpenNormalFindReplace(replace); } Rect lr = GetLineScreenRect(GetLine(GetCursor())); Size fsz = findreplace.GetAdjustedSize(); @@ -323,7 +323,7 @@ void CodeEditor::Replace() if(!found) return; if(RemoveSelection()) { Paste(GetReplaceText()); - Find(); + Find(false, false, true); } }