mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
force hide shadow
This commit is contained in:
@@ -16,7 +16,8 @@
|
||||
package com.intellij.codeInsight.lookup.impl;
|
||||
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.ui.HeavyweightHint;
|
||||
import com.intellij.ui.HintHint;
|
||||
import com.intellij.ui.LightweightHint;
|
||||
import com.intellij.ui.awt.RelativePoint;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -29,13 +30,14 @@ import java.awt.event.ComponentEvent;
|
||||
/**
|
||||
* @author Konstantin Bulenkov
|
||||
*/
|
||||
public class CompletionExtender extends HeavyweightHint {
|
||||
public class CompletionExtender extends LightweightHint {
|
||||
private LookupElement myElement;
|
||||
private LookupImpl myLookup;
|
||||
private int myIndex;
|
||||
|
||||
public CompletionExtender(@NotNull LookupElement element, @NotNull LookupImpl lookup) {
|
||||
super(createComponent(element, lookup), false);
|
||||
super(createComponent(element, lookup));
|
||||
setForceHideShadow(true);
|
||||
myElement = element;
|
||||
myLookup = lookup;
|
||||
myIndex = myLookup.getList().getSelectedIndex();
|
||||
@@ -74,14 +76,15 @@ public class CompletionExtender extends HeavyweightHint {
|
||||
public boolean show() {
|
||||
final JList list = myLookup.getList();
|
||||
if (getComponent().getWidth() > list.getWidth()) {
|
||||
final JComponent rootPane = UIUtil.getRootPane(myLookup.getEditor().getContentComponent());
|
||||
final JComponent rootPane = myLookup.myLayeredPane;
|
||||
|
||||
final Point p = list.getLocationOnScreen();
|
||||
p.y += list.indexToLocation(list.getSelectedIndex()).y;
|
||||
SwingUtilities.convertPointFromScreen(p, rootPane);
|
||||
|
||||
if (rootPane != null) {
|
||||
show(rootPane, p);
|
||||
final HintHint hint = new HintHint();
|
||||
show(rootPane, p.x, p.y, null, hint);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,6 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.popup.JBPopup;
|
||||
import com.intellij.openapi.ui.popup.JBPopupFactory;
|
||||
import com.intellij.openapi.util.*;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.util.text.StringUtilRt;
|
||||
import com.intellij.openapi.wm.IdeFocusManager;
|
||||
@@ -142,7 +141,7 @@ public class LookupImpl extends LightweightHint implements LookupEx, Disposable
|
||||
private Alarm myHintAlarm = new Alarm();
|
||||
private JLabel mySortingLabel = new JLabel();
|
||||
private final JScrollPane myScrollPane;
|
||||
private final LookupLayeredPane myLayeredPane = new LookupLayeredPane();
|
||||
final LookupLayeredPane myLayeredPane = new LookupLayeredPane();
|
||||
private JButton myScrollBarIncreaseButton;
|
||||
private boolean myStartCompletionWhenNothingMatches;
|
||||
private boolean myResizePending;
|
||||
|
||||
@@ -64,6 +64,8 @@ public class LightweightHint extends UserDataHolderBase implements Hint {
|
||||
private HintHint myHintHint;
|
||||
private JComponent myFocusRequestor;
|
||||
|
||||
private boolean myForceHideShadow = false;
|
||||
|
||||
public LightweightHint(@NotNull final JComponent component) {
|
||||
myComponent = component;
|
||||
}
|
||||
@@ -207,7 +209,7 @@ public class LightweightHint extends UserDataHolderBase implements Hint {
|
||||
.setMovable(myTitle != null)
|
||||
.setTitle(myTitle)
|
||||
.setModalContext(false)
|
||||
.setShowShadow(isRealPopup())
|
||||
.setShowShadow(isRealPopup() && !isForceHideShadow())
|
||||
.setCancelKeyEnabled(false)
|
||||
.setCancelOnClickOutside(myCancelOnClickOutside)
|
||||
.setCancelCallback(new Computable<Boolean>() {
|
||||
@@ -259,6 +261,14 @@ public class LightweightHint extends UserDataHolderBase implements Hint {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isForceHideShadow() {
|
||||
return myForceHideShadow;
|
||||
}
|
||||
|
||||
public void setForceHideShadow(boolean forceHideShadow) {
|
||||
myForceHideShadow = forceHideShadow;
|
||||
}
|
||||
|
||||
private static boolean fitsLayeredPane(JLayeredPane pane, JComponent component, RelativePoint desiredLocation, HintHint hintHint) {
|
||||
if (hintHint.isAwtTooltip()) {
|
||||
Dimension size = component.getPreferredSize();
|
||||
|
||||
Reference in New Issue
Block a user