From: Maxim.Mossienko Date: Wed, 16 Nov 2016 22:51:28 +0000 (+0100) Subject: select text in replace field (IDEA-152060) X-Git-Tag: pycharm/171.1034~1 X-Git-Url: https://git.jetbrains.org/?p=idea%2Fcommunity.git;a=commitdiff_plain;h=5d1b1ba13a1ef948377771fb1c4c9244e784563a select text in replace field (IDEA-152060) --- diff --git a/platform/lang-impl/src/com/intellij/find/SearchReplaceComponent.java b/platform/lang-impl/src/com/intellij/find/SearchReplaceComponent.java index a8e4d57b34c7..48449e05321f 100644 --- a/platform/lang-impl/src/com/intellij/find/SearchReplaceComponent.java +++ b/platform/lang-impl/src/com/intellij/find/SearchReplaceComponent.java @@ -216,9 +216,16 @@ public class SearchReplaceComponent extends EditorHeaderComponent implements Dat } public void requestFocusInTheSearchFieldAndSelectContent(Project project) { - mySearchTextComponent.setSelectionStart(0); - mySearchTextComponent.setSelectionEnd(mySearchTextComponent.getText().length()); + doSelectAll(mySearchTextComponent); IdeFocusManager.getInstance(project).requestFocus(mySearchTextComponent, true); + if (myReplaceTextComponent != null) { + doSelectAll(myReplaceTextComponent); + } + } + + private static void doSelectAll(JTextComponent searchTextComponent) { + searchTextComponent.setSelectionStart(0); + searchTextComponent.setSelectionEnd(searchTextComponent.getText().length()); } public void setStatusText(@NotNull String status) { @@ -346,6 +353,7 @@ public class SearchReplaceComponent extends EditorHeaderComponent implements Dat private void updateReplaceComponent(@NotNull String textToSet) { final int oldCaretPosition = myReplaceTextComponent != null ? myReplaceTextComponent.getCaretPosition() : 0; + boolean wasNull = myReplaceTextComponent == null; if (!updateTextComponent(false)) { if (!myReplaceTextComponent.getText().equals(textToSet)) { myReplaceTextComponent.setText(textToSet); @@ -366,7 +374,10 @@ public class SearchReplaceComponent extends EditorHeaderComponent implements Dat } //myReplaceTextComponent.setText(myFindModel.getStringToReplace()); - ApplicationManager.getApplication().invokeLater(() -> myReplaceTextComponent.setCaretPosition(oldCaretPosition)); + if (!wasNull) { + ApplicationManager.getApplication().invokeLater( + () -> myReplaceTextComponent.setCaretPosition(Math.min(oldCaretPosition, myReplaceTextComponent.getText().length()))); + } new VariantsCompletionAction(myReplaceTextComponent); myReplaceFieldWrapper.revalidate();