From 946f2b0d5f573266dac106ab1e235de43a3e3f79 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 15 Sep 2011 14:20:44 +0200 Subject: [PATCH] don't blink in JavaAutoPopupTest.testChoosingItemDuringCopyCommit --- .../completion/JavaAutoPopupTest.groovy | 2 +- .../completion/CodeCompletionHandlerBase.java | 2 +- .../completion/CompletionProgressIndicator.java | 4 ++-- .../lookup/impl/LookupActionHandler.java | 4 ++-- .../lookup/impl/LookupActionsStep.java | 2 +- .../codeInsight/lookup/impl/LookupImpl.java | 16 ++++++---------- .../lookup/impl/LookupManagerImpl.java | 2 +- .../impl/actions/ChooseItemReplaceAction.java | 2 +- .../codeInsight/template/impl/TemplateState.java | 2 +- .../intellij/ui/TextFieldWithAutoCompletion.java | 2 +- 10 files changed, 17 insertions(+), 21 deletions(-) diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy index 4f9172659c28..fc0f479f48e8 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy @@ -536,7 +536,7 @@ public interface Test { myFixture.completeBasic() while (!lookup.items) { Thread.sleep(10) - edt { lookup.refreshUi() } + edt { lookup.refreshUi(false) } } edt { myFixture.type '\t' } myFixture.checkResult 'public interface Test { RuntimeExceptionx }' diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionHandlerBase.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionHandlerBase.java index 4ab7591f939f..daf1ca832818 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionHandlerBase.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionHandlerBase.java @@ -446,7 +446,7 @@ public class CodeCompletionHandlerBase implements CodeInsightActionHandler { return; } - indicator.getLookup().refreshUi(); + indicator.getLookup().refreshUi(true); final AutoCompletionDecision decision = shouldAutoComplete(indicator, items); if (decision == AutoCompletionDecision.SHOW_LOOKUP) { CompletionServiceImpl.setCompletionPhase(new CompletionPhase.ItemsCalculated(indicator)); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionProgressIndicator.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionProgressIndicator.java index ea439022e8d5..af183dea1675 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionProgressIndicator.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionProgressIndicator.java @@ -345,7 +345,7 @@ public class CompletionProgressIndicator extends ProgressIndicatorBase implement } justShown = true; } - myLookup.refreshUi(); + myLookup.refreshUi(true); hideAutopopupIfMeaningless(); if (justShown) { myLookup.ensureSelectionVisible(); @@ -504,7 +504,7 @@ public class CompletionProgressIndicator extends ProgressIndicatorBase implement private boolean hideAutopopupIfMeaningless() { if (isAutopopupCompletion() && !myLookup.isSelectionTouched() && !myLookup.isCalculating()) { - myLookup.refreshUi(); + myLookup.refreshUi(true); final List items = myLookup.getItems(); for (LookupElement item : items) { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupActionHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupActionHandler.java index 94a2504b3a02..650953ca93b6 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupActionHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupActionHandler.java @@ -84,7 +84,7 @@ public abstract class LookupActionHandler extends EditorActionHandler { if (!lookup.isFocused()) { lookup.setFocused(true); lookup.getList().setSelectedIndex(0); - lookup.refreshUi(); + lookup.refreshUi(false); } else { ListScrollingUtil.moveDown(lookup.getList(), 0); } @@ -146,7 +146,7 @@ public abstract class LookupActionHandler extends EditorActionHandler { lookup.setFocused(true); lookup.getList().setSelectedIndex(0); - lookup.refreshUi(); + lookup.refreshUi(false); } ListScrollingUtil.moveUp(lookup.getList(), 0); return true; diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupActionsStep.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupActionsStep.java index 15e2d9026fdc..5adab0d266fa 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupActionsStep.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupActionsStep.java @@ -60,7 +60,7 @@ public class LookupActionsStep extends BaseListPopupStep im myLookup.hide(); } else if (result == LookupElementAction.Result.REFRESH_ITEM) { myLookup.updateLookupWidth(myLookupElement); - myLookup.refreshUi(); + myLookup.refreshUi(false); } else if (result instanceof LookupElementAction.Result.ChooseItem) { myLookup.setCurrentItem(((LookupElementAction.Result.ChooseItem)result).item); CommandProcessor.getInstance().executeCommand(myLookup.getEditor().getProject(), new Runnable() { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java index 425b766433e2..8ab202b5a9bd 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java @@ -265,9 +265,7 @@ public class LookupImpl extends LightweightHint implements LookupEx, Disposable for (final LookupElement item : items) { addItem(item, itemMatcher(item)); } - checkReused(); - updateList(); - ensureSelectionVisible(); + refreshUi(true); } public void addItem(LookupElement item, PrefixMatcher matcher) { @@ -329,13 +327,11 @@ public class LookupImpl extends LightweightHint implements LookupEx, Disposable } void appendPrefix(char c) { - //todo this checkReused + refreshUi clears the lookup which fails testChoosingItemDuringCopyCommit - checkReused(); checkValid(); myAdditionalPrefix += c; myInitialPrefix = null; myFrozenItems.clear(); - refreshUi(); + refreshUi(false); ensureSelectionVisible(); } @@ -366,7 +362,7 @@ public class LookupImpl extends LightweightHint implements LookupEx, Disposable myInitialPrefix = null; myFrozenItems.clear(); if (!myReused) { - refreshUi(); + refreshUi(false); ensureSelectionVisible(); } @@ -1151,7 +1147,7 @@ public class LookupImpl extends LightweightHint implements LookupEx, Disposable myEditor.getCaretModel().moveToOffset(start + newPrefix.length()); } }); - refreshUi(); + refreshUi(true); } @Nullable @@ -1280,8 +1276,8 @@ public class LookupImpl extends LightweightHint implements LookupEx, Disposable return index; } - public void refreshUi() { - final boolean reused = checkReused(); + public void refreshUi(boolean mayCheckReused) { + final boolean reused = mayCheckReused && checkReused(); boolean selectionVisible = isSelectionVisible(); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupManagerImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupManagerImpl.java index 18100d58a492..f2bfe04896cb 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupManagerImpl.java @@ -209,7 +209,7 @@ public class LookupManagerImpl extends LookupManager { for (final LookupElement item : items) { myActiveLookup.addItem(item, matcher); } - myActiveLookup.refreshUi(); + myActiveLookup.refreshUi(true); } else { alarm.cancelAllRequests(); // no items -> no doc } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/actions/ChooseItemReplaceAction.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/actions/ChooseItemReplaceAction.java index f5fc49f57efa..7344d395913f 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/actions/ChooseItemReplaceAction.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/actions/ChooseItemReplaceAction.java @@ -55,7 +55,7 @@ public class ChooseItemReplaceAction extends EditorAction { return false; } - lookup.refreshUi(); // to bring the list model up to date + lookup.refreshUi(false); // to bring the list model up to date CompletionProcess completion = CompletionService.getCompletionService().getCurrentCompletion(); if (completion != null && completion.isAutopopupCompletion() && hasTemplatePrefix(lookup, TemplateSettings.TAB_CHAR) && !lookup.isSelectionTouched()) { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java index dc53052aef74..107d8a30f9d7 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java @@ -503,7 +503,7 @@ public class TemplateState implements Disposable { } lookup.setAdvertisementText(advertisingText); - lookup.refreshUi(); + lookup.refreshUi(true); ourLookupShown = true; lookup.addLookupListener(new LookupAdapter() { public void lookupCanceled(LookupEvent event) { diff --git a/platform/lang-impl/src/com/intellij/ui/TextFieldWithAutoCompletion.java b/platform/lang-impl/src/com/intellij/ui/TextFieldWithAutoCompletion.java index 8a57b651c0b9..2b12c48aaf68 100644 --- a/platform/lang-impl/src/com/intellij/ui/TextFieldWithAutoCompletion.java +++ b/platform/lang-impl/src/com/intellij/ui/TextFieldWithAutoCompletion.java @@ -117,7 +117,7 @@ public class TextFieldWithAutoCompletion extends EditorTextField { final String advertisementText = getAdvertisementText(); if (!StringUtil.isEmpty(advertisementText)) { lookup.setAdvertisementText(advertisementText); - lookup.refreshUi(); + lookup.refreshUi(false); } lookup.showLookup(); }