File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -572,13 +572,19 @@ EditorWindow::MessageReceived(BMessage* message)
572572 be_app->PostMessage (message);
573573 } break ;
574574 case MAINMENU_SEARCH_FINDNEXT: {
575- fEditor -> FindNext ( );
575+ PostMessage (FindReplaceHandler::FIND, fFindReplaceHandler , this );
576576 } break ;
577577 case MAINMENU_SEARCH_FINDSELECTION: {
578- fEditor ->FindSelection ();
578+ std::string selection = fEditor ->SelectionText ();
579+ if (!selection.empty ()) {
580+ BMessage msg (FindReplaceHandler::FIND);
581+ msg.AddBool (" wrapAround" , true );
582+ msg.AddString (" findText" , selection.c_str ());
583+ PostMessage (&msg, fFindReplaceHandler , this );
584+ }
579585 } break ;
580586 case MAINMENU_SEARCH_REPLACEANDFIND: {
581- fEditor -> ReplaceAndFind ( );
587+ PostMessage (FindReplaceHandler::REPLACEFIND, fFindReplaceHandler , this );
582588 } break ;
583589 case MAINMENU_SEARCH_INCREMENTAL: {
584590 RemoveCommonFilter (fFindReplaceHandler ->IncrementalSearchFilter ());
Original file line number Diff line number Diff line change @@ -69,6 +69,9 @@ FindReplaceHandler::MessageReceived(BMessage* message)
6969
7070 switch (message->what ) {
7171 case REPLACEFIND:
72+ if (info.replace .empty () && info.find .empty ()) {
73+ info.replace = fSearchLastInfo .replace ;
74+ }
7275 // fallthrough
7376 case REPLACE: {
7477 int replaceMsg = (info.regex ? SCI_REPLACETARGETRE : SCI_REPLACETARGET);
@@ -90,6 +93,9 @@ FindReplaceHandler::MessageReceived(BMessage* message)
9093 }
9194 if (message->what != REPLACEFIND) break ;
9295 case FIND: {
96+ if (info.find .empty ()) {
97+ info = fSearchLastInfo ;
98+ }
9399 if ((fSearchLastInfo .backwards == true && (anchor != fSearchLastResult .first
94100 || current != fSearchLastResult .second ))
95101 || (fSearchLastInfo .backwards == false && (anchor != fSearchLastResult .second
You can’t perform that action at this time.
0 commit comments