Skip to content

Commit cd75cc2

Browse files
fulvioievacmaglie
authored andcommitted
Fix search and replace #2106
1 parent 6efbecd commit cd75cc2

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

app/src/processing/app/FindReplace.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -426,8 +426,23 @@ private boolean find(boolean wrap,boolean backwards,boolean searchTabs,int origi
426426
public void replace() {
427427
if(findField.getText().length()==0)
428428
return;
429-
editor.setSelectedText(replaceField.getText());
430-
editor.getSketch().setModified(true); // TODO is this necessary?
429+
430+
int newpos = editor.getSelectionStart() - findField.getText().length();
431+
if (newpos < 0) newpos = 0;
432+
editor.setSelection(newpos, newpos);
433+
434+
boolean foundAtLeastOne = false;
435+
436+
if ( find(false,false,searchAllFiles,-1)) {
437+
foundAtLeastOne = true;
438+
editor.setSelectedText(replaceField.getText());
439+
editor.getSketch().setModified(true); // TODO is this necessary?
440+
}
441+
442+
if ( !foundAtLeastOne ) {
443+
Toolkit.getDefaultToolkit().beep();
444+
}
445+
431446
}
432447

433448
/**
@@ -453,7 +468,8 @@ public void replaceAll() {
453468
while ( true ) {
454469
if ( find(false,false,searchAllFiles,-1)) {
455470
foundAtLeastOne = true;
456-
replace();
471+
editor.setSelectedText(replaceField.getText());
472+
editor.getSketch().setModified(true); // TODO is this necessary?
457473
} else {
458474
break;
459475
}

0 commit comments

Comments
 (0)