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) {
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;
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 <code>x</code> and <code>y</code>
* are in <code>parentComponent</code> coordinate system. Note that the component
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();
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);