From 8d4c9aa125b6a95f635ab52683a1edf51401f2be Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Fri, 2 Feb 2018 12:29:50 +0300 Subject: [PATCH] IDEA-185706 Search and replace in files is broken. --- .../intellij/find/impl/FindPopupPanel.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/find/impl/FindPopupPanel.java b/platform/lang-impl/src/com/intellij/find/impl/FindPopupPanel.java index 400deac6a5ec..7ca15ddd0cbf 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/FindPopupPanel.java +++ b/platform/lang-impl/src/com/intellij/find/impl/FindPopupPanel.java @@ -451,11 +451,21 @@ public class FindPopupPanel extends JBPanel implements FindUI { myOkActionListener = __ -> doOK(true); myReplaceAllButton.addActionListener(e -> { - if (myResultsPreviewTable.getRowCount() < 2 || ReplaceInProjectManager.getInstance(myProject).showReplaceAllConfirmDialog( - myUsagesCount, - getStringToFind(), - myFilesCount, - getStringToReplace())) { + boolean okToReplaceAll = myResultsPreviewTable.getRowCount() < 2; + if (!okToReplaceAll) { + boolean oldPinnedValue = myIsPinned.get(); + try { + myIsPinned.set(true); + okToReplaceAll = ReplaceInProjectManager.getInstance(myProject).showReplaceAllConfirmDialog( + myUsagesCount, + getStringToFind(), + myFilesCount, + getStringToReplace()); + } finally { + myIsPinned.set(oldPinnedValue); + } + } + if (okToReplaceAll) { doOK(false); } });