diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/CompletionHintsTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/completion/CompletionHintsTest.java index 658cb634cc47..7f114a9f8d26 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/CompletionHintsTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/CompletionHintsTest.java @@ -122,6 +122,18 @@ public class CompletionHintsTest extends LightFixtureCompletionTestCase { "}"); } + public void testNestedCompletion() { + myFixture.configureByText(JavaFileType.INSTANCE, "class C { void m() { System.setPro } }"); + complete("setProperty"); + myFixture.doHighlighting(); + myFixture.checkResultWithInlays("class C { void m() { System.setProperty(, ) } }"); + myFixture.type("System.getPro"); + complete("getProperty(String key, String def)"); + myFixture.doHighlighting(); + myFixture.checkResultWithInlays("class C { void m() { System.setProperty(System.getProperty(, ), ) } }"); + myFixture.checkResult("class C { void m() { System.setProperty(System.getProperty(, ), ) } }"); + } + private void showParameterInfo() { myFixture.performEditorAction("ParameterInfo"); UIUtil.dispatchAllInvocationEvents(); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hint/ParameterInfoController.java b/platform/lang-impl/src/com/intellij/codeInsight/hint/ParameterInfoController.java index 628fc953959a..ff1cc3d2613c 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hint/ParameterInfoController.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/hint/ParameterInfoController.java @@ -219,11 +219,16 @@ public class ParameterInfoController implements Disposable { } private void adjustPositionForLookup(@NotNull Lookup lookup) { - if (!myHint.isVisible() || myEditor.isDisposed()) { + if (myEditor.isDisposed()) { Disposer.dispose(this); return; } + if (!myHint.isVisible()) { + if (!myKeepOnHintHidden) Disposer.dispose(this); + return; + } + IdeTooltip tooltip = myHint.getCurrentIdeTooltip(); if (tooltip != null) { JRootPane root = myEditor.getComponent().getRootPane();