mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
change popup menu to action popup when clicking on ActionButton
GitOrigin-RevId: 8c07375a8089c577fcce41cb6cfb758d34ac0a57
This commit is contained in:
committed by
intellij-monorepo-bot
parent
6c2b21529f
commit
06d5a740c0
+9
-14
@@ -14,11 +14,14 @@ import com.intellij.openapi.application.impl.LaterInvocator;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.keymap.KeymapUtil;
|
||||
import com.intellij.openapi.keymap.impl.IdeMouseEventDispatcher;
|
||||
import com.intellij.openapi.ui.popup.JBPopup;
|
||||
import com.intellij.openapi.ui.popup.JBPopupFactory;
|
||||
import com.intellij.openapi.util.IconLoader;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.ui.ComponentUtil;
|
||||
import com.intellij.ui.awt.RelativePoint;
|
||||
import com.intellij.ui.popup.util.PopupState;
|
||||
import com.intellij.ui.scale.JBUIScale;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
@@ -188,24 +191,16 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
|
||||
// used in Rider, please don't change visibility
|
||||
protected void showPopupMenu(AnActionEvent event, ActionGroup actionGroup) {
|
||||
if (myPopupState.isRecentlyHidden()) return; // do not show new popup
|
||||
final ActionManagerImpl am = (ActionManagerImpl) ActionManager.getInstance();
|
||||
ActionPopupMenuImpl popupMenu = (ActionPopupMenuImpl)am.createActionPopupMenu(event.getPlace(), actionGroup, new MenuItemPresentationFactory() {
|
||||
@Override
|
||||
protected void processPresentation(Presentation presentation) {
|
||||
if (myNoIconsInPopup) {
|
||||
presentation.setIcon(null);
|
||||
presentation.setHoveredIcon(null);
|
||||
}
|
||||
}
|
||||
});
|
||||
popupMenu.setDataContextProvider(() -> getDataContext());
|
||||
popupMenu.getComponent().addPopupMenuListener(myPopupState);
|
||||
|
||||
JBPopup popup = JBPopupFactory.getInstance().createActionGroupPopup("", actionGroup, getDataContext(),
|
||||
JBPopupFactory.ActionSelectionAid.SPEEDSEARCH, true, event.getPlace());
|
||||
popup.addListener(myPopupState);
|
||||
|
||||
if (event.isFromActionToolbar()) {
|
||||
popupMenu.getComponent().show(this, 0, getHeight());
|
||||
popup.show(new RelativePoint(this, new Point(0, getHeight())));
|
||||
}
|
||||
else {
|
||||
popupMenu.getComponent().show(this, getWidth(), 0);
|
||||
popup.show(new RelativePoint(this, new Point(getWidth(), 0)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user