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); + } } } }