From 17ddda9d154de2ce00088ea2a2225a91a82d86d6 Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Thu, 17 Sep 2009 20:52:40 +0400 Subject: [PATCH] Only update when current project is in focus --- .../ide/navigationToolbar/NavBarPanel.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) 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 c7f033ee9760..a809db95a909 100644 --- a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarPanel.java +++ b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarPanel.java @@ -271,7 +271,10 @@ public class NavBarPanel extends JPanel implements DataProvider, PopupOwner { private void updateModel() { DataContext context = DataManager.getInstance().getDataContext(); - if (context.getData(DataConstants.IDE_VIEW) == myIdeView) return; + if (context.getData(DataConstants.IDE_VIEW) == myIdeView || context.getData(DataConstants.PROJECT) != myProject) { + scheduleModelUpdate(); + return; + } myModel.updateModel(context); } @@ -749,12 +752,14 @@ public class NavBarPanel extends JPanel implements DataProvider, PopupOwner { public void updateState(final boolean show) { updateModel(); - updateList(); - final int selectedIndex = myModel.getSelectedIndex(); - if (show && selectedIndex > -1 && selectedIndex < myModel.size()) { - final MyItemLabel item = getItem(selectedIndex); - if (item != null) { - IdeFocusManager.getInstance(myProject).requestFocus(item, true); + if (isShowing()) { + updateList(); + final int selectedIndex = myModel.getSelectedIndex(); + if (show && selectedIndex > -1 && selectedIndex < myModel.size()) { + final MyItemLabel item = getItem(selectedIndex); + if (item != null) { + IdeFocusManager.getInstance(myProject).requestFocus(item, true); + } } } }