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 d53b026b7417..82fcb38bf007 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionProgressIndicator.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionProgressIndicator.java @@ -90,6 +90,12 @@ public class CompletionProgressIndicator extends ProgressIndicatorBase implement myFreezeSemaphore = freezeSemaphore; myLookup = (LookupImpl)LookupManager.getInstance(editor.getProject()).createLookup(editor, LookupElement.EMPTY_ARRAY, "", new CompletionLookupArranger(parameters)); + if (editor.isOneLineMode()) { + myLookup.setForceShowAsPopup(true); + myLookup.setCancelOnClickOutside(true); + myLookup.setCancelOnOtherWindowOpen(true); + myLookup.setResizable(false); + } myLookup.addLookupListener(new LookupAdapter() { public void itemSelected(LookupEvent event) { diff --git a/platform/platform-impl/src/com/intellij/ui/LightweightHint.java b/platform/platform-impl/src/com/intellij/ui/LightweightHint.java index 48251f87e99c..d068c8c3fd2a 100644 --- a/platform/platform-impl/src/com/intellij/ui/LightweightHint.java +++ b/platform/platform-impl/src/com/intellij/ui/LightweightHint.java @@ -48,6 +48,9 @@ public class LightweightHint extends UserDataHolderBase implements Hint { private boolean myForceShowAsPopup = false; private String myTitle = null; + private boolean myCancelOnClickOutside; + private boolean myCancelOnOtherWindowOpen; + private boolean myResizable; public LightweightHint(@NotNull final JComponent component) { myComponent = component; @@ -74,6 +77,18 @@ public class LightweightHint extends UserDataHolderBase implements Hint { mySelectingHint = selectingHint; } + public void setCancelOnClickOutside(final boolean b) { + myCancelOnClickOutside = b; + } + + public void setCancelOnOtherWindowOpen(final boolean b) { + myCancelOnOtherWindowOpen = b; + } + + public void setResizable(final boolean b) { + myResizable = b; + } + /** * Shows the hint in the layered pane. Coordinates x and y * are in parentComponent coordinate system. Note that the component @@ -105,13 +120,13 @@ public class LightweightHint extends UserDataHolderBase implements Hint { myIsRealPopup = true; myPopup = JBPopupFactory.getInstance().createComponentPopupBuilder(myComponent, null) .setRequestFocus(false) - .setResizable(myForceShowAsPopup) - .setMovable(myForceShowAsPopup) + .setResizable(myResizable) + .setMovable(myTitle != null) .setTitle(myTitle) .setShowShadow(false) .setCancelKeyEnabled(false) - .setCancelOnClickOutside(false) - .setCancelOnOtherWindowOpen(false) + .setCancelOnClickOutside(myCancelOnClickOutside) + .setCancelOnOtherWindowOpen(myCancelOnOtherWindowOpen) .createPopup(); beforeShow(); diff --git a/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java b/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java index db179130e98b..7fd4950bad6a 100644 --- a/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java +++ b/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java @@ -197,7 +197,7 @@ public class AbstractPopup implements JBPopup { myPopupBorder = PopupBorder.Factory.create(true); myShadowed = showShadow; myPaintShadow = showShadow && !SystemInfo.isMac && !movable && !resizable && Registry.is("ide.popup.dropShadow"); - myContent = createContentPanel(resizable, myPopupBorder, isToDrawMacCorner()); + myContent = createContentPanel(resizable, myPopupBorder, isToDrawMacCorner() && resizable); myMayBeParent = mayBeParent; myContent.add(component, BorderLayout.CENTER);