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);