From a356e973872d129993865a304554b982a5f87db4 Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Thu, 7 Apr 2011 16:15:02 +0400 Subject: [PATCH] rollback autopopup. Use Up/Down on file instead --- .../ActivateNavigationBarAction.java | 2 +- .../navigationToolbar/NavBarKeyboardCommand.java | 1 + .../ide/navigationToolbar/NavBarListener.java | 1 + .../ide/navigationToolbar/NavBarPanel.java | 14 +++++++++++--- .../navigationToolbar/SelectInNavBarTarget.java | 2 +- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/ActivateNavigationBarAction.java b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/ActivateNavigationBarAction.java index 621e69120d07..761bcd38c1c8 100644 --- a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/ActivateNavigationBarAction.java +++ b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/ActivateNavigationBarAction.java @@ -36,7 +36,7 @@ public class ActivateNavigationBarAction extends AnAction implements DumbAware { final IdeFrameImpl frame = WindowManagerEx.getInstanceEx().getFrame(project); final IdeRootPane ideRootPane = ((IdeRootPane)frame.getRootPane()); final NavBarPanel navBarPanel = (NavBarPanel)ideRootPane.findByName(NavBarRootPaneExtension.NAV_BAR).getComponent(); - navBarPanel.activatePopupOnLastElement(e.getDataContext()); + navBarPanel.selectTail(); } } diff --git a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarKeyboardCommand.java b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarKeyboardCommand.java index c5775f3f1b6a..d0a4d69e36a4 100644 --- a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarKeyboardCommand.java +++ b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarKeyboardCommand.java @@ -29,6 +29,7 @@ public enum NavBarKeyboardCommand { HOME(KeyEvent.VK_HOME), END(KeyEvent.VK_END), DOWN(KeyEvent.VK_DOWN), + UP(KeyEvent.VK_UP), ENTER(KeyEvent.VK_ENTER), NAVIGATE(KeyEvent.VK_F4), ESCAPE(KeyEvent.VK_ESCAPE); diff --git a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarListener.java b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarListener.java index f1d1cba26af4..a20d97936c4b 100644 --- a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarListener.java +++ b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarListener.java @@ -113,6 +113,7 @@ public class NavBarListener extends WolfTheProblemSolver.ProblemListener case HOME: myPanel.moveHome(); break; case END: myPanel.moveEnd(); break; case DOWN: myPanel.moveDown(); break; + case UP: myPanel.moveDown(); break; case ENTER: myPanel.enter(); break; case ESCAPE: myPanel.escape(); break; case NAVIGATE: myPanel.navigate(); break; diff --git a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarPanel.java b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarPanel.java index 4632e9ffe9be..771cbd13dd64 100644 --- a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarPanel.java +++ b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarPanel.java @@ -94,6 +94,7 @@ public class NavBarPanel extends OpaquePanel.List implements DataProvider, Popup private NavBarItem myContextObject; private boolean myDisposed = false; private RelativePoint myLocationCache; + private boolean initialized = false; public NavBarPanel(final Project project) { @@ -171,8 +172,14 @@ public class NavBarPanel extends OpaquePanel.List implements DataProvider, Popup } public void moveDown() { - if (myModel.getSelectedIndex() != -1) { - ctrlClick(myModel.getSelectedIndex()); + final int index = myModel.getSelectedIndex(); + if (index != -1) { + if (myModel.size() - 1 == index) { + shiftFocus(-1); + ctrlClick(index - 1); + } else { + ctrlClick(index); + } } } @@ -719,7 +726,7 @@ public class NavBarPanel extends OpaquePanel.List implements DataProvider, Popup } }); } - activatePopupOnLastElement(); + selectTail(); } }, NavBarUpdateQueue.ID.SHOW_HINT); @@ -741,6 +748,7 @@ public class NavBarPanel extends OpaquePanel.List implements DataProvider, Popup myModel.setSelectedIndex(Math.max(myList.size() - 2, 0)); IdeFocusManager.getInstance(myProject).requestFocus(NavBarPanel.this, true); restorePopup(); + initialized = true; } } }); diff --git a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/SelectInNavBarTarget.java b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/SelectInNavBarTarget.java index 28a7bcceac92..c9554c88b8ba 100644 --- a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/SelectInNavBarTarget.java +++ b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/SelectInNavBarTarget.java @@ -72,7 +72,7 @@ public class SelectInNavBarTarget extends SelectInTargetPsiWrapper implements Du if (navBarExt != null) { final JComponent c = navBarExt.getComponent(); final NavBarPanel panel = (NavBarPanel)c.getClientProperty("NavBarPanel"); - panel.activatePopupOnLastElement(); + panel.selectTail(); } } }