IDEA-117192 NavBar popup shows in wrong place when navigating to the directory from popup

(cherry picked from commit aadedc949bcdf5f25a3ca2566d6df41f9bd3729c)
This commit is contained in:
Konstantin Bulenkov
2013-11-28 17:37:11 +01:00
parent f1d09b51cd
commit a4e1707d70
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2011 JetBrains s.r.o.
* Copyright 2000-2013 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,7 +18,6 @@ package com.intellij.ide.navigationToolbar;
import com.intellij.ide.navigationToolbar.ui.NavBarUIManager;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.actionSystem.DataProvider;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.Queryable;
import com.intellij.openapi.util.Disposer;
@@ -113,10 +112,18 @@ public class NavBarPopup extends LightweightHint implements Disposable{
final RelativePoint point = new RelativePoint(item, new Point(0, item.getHeight()));
final Point p = point.getPoint(myPanel);
if (p.x == 0 && p.y == 0 && checkRepaint) { // need repaint of nav bar panel
ApplicationManager.getApplication().invokeLater(new Runnable() {
//noinspection SSBasedInspection
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
show(item, false); // end-less loop protection
myPanel.getUpdateQueue().rebuildUi();
//noinspection SSBasedInspection
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
show(item, false); // end-less loop protection
}
});
}
});
} else {