From e0ba38fed027cf3b87ea4951368f9ce60016d9cf Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 16 Dec 2014 11:01:35 +0100 Subject: [PATCH] introduce parameter: clean selection later to avoid focus troubles (IDEA-134272) --- .../IntroduceParameterHandler.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java index 9635c7f631ba..ec7fe89d622a 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java @@ -490,9 +490,16 @@ public class IntroduceParameterHandler extends IntroduceHandlerBase { createTypeSelectorManager(occurences, initializerType), methodToSearchFor, method, getParamsToRemove(method, occurences), mustBeFinal); dialog.setReplaceAllOccurrences(replaceAllOccurrences); dialog.setGenerateDelegate(delegate); - dialog.show(); - if (myEditor != null) { - myEditor.getSelectionModel().removeSelection(); + if (dialog.showAndGet()) { + final Runnable cleanSelectionRunnable = new Runnable() { + @Override + public void run() { + if (myEditor != null && !myEditor.isDisposed()) { + myEditor.getSelectionModel().removeSelection(); + } + } + }; + SwingUtilities.invokeLater(cleanSelectionRunnable); } } }