1 package com
.intellij
.ide
.actions
;
3 import com
.intellij
.openapi
.actionSystem
.AnAction
;
4 import com
.intellij
.openapi
.actionSystem
.AnActionEvent
;
5 import com
.intellij
.openapi
.ui
.popup
.JBPopupFactory
;
6 import com
.intellij
.ui
.awt
.RelativePoint
;
10 import java
.awt
.event
.MouseEvent
;
13 * @author Vladimir Kondratyev
15 public class ShowPopupMenuAction
extends AnAction
{
16 public ShowPopupMenuAction() {
17 setEnabledInModalContext(true);
20 public void actionPerformed(AnActionEvent e
) {
21 final RelativePoint relPoint
= JBPopupFactory
.getInstance().guessBestPopupLocation(e
.getDataContext());
23 KeyboardFocusManager focusManager
= KeyboardFocusManager
.getCurrentKeyboardFocusManager();
24 Component focusOwner
= focusManager
.getFocusOwner();
26 Point popupMenuPoint
= relPoint
.getPoint(focusOwner
);
28 focusOwner
.dispatchEvent(
31 MouseEvent
.MOUSE_PRESSED
,
32 System
.currentTimeMillis(), 0,
34 Math
.max(0, popupMenuPoint
.y
- 1), //To avoid cursor jump to the line below. http://www.jetbrains.net/jira/browse/IDEADEV-10644
41 public void update(AnActionEvent e
) {
42 KeyboardFocusManager focusManager
= KeyboardFocusManager
.getCurrentKeyboardFocusManager();
43 e
.getPresentation().setEnabled(focusManager
.getFocusOwner() instanceof JComponent
);