IDEA-122792: do not schedule toolbar refresh for partially initialized target component

this is better fix for 193b3ae

if target component is not shown yet, ModalityState.stateForComponent() will return NON_MODAL, causing memory leak
This commit is contained in:
Aleksey Pivovarov
2015-01-27 16:43:37 +03:00
parent fa9bdb5015
commit 24cbb1e140
@@ -45,6 +45,7 @@ import com.intellij.ui.switcher.SwitchTarget;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.ui.JBUI;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.update.UiNotifyConnector;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
@@ -921,13 +922,13 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
public void setTargetComponent(final JComponent component) {
myTargetComponent = component;
if (myTargetComponent != null && myTargetComponent.isVisible()) {
ApplicationManager.getApplication().invokeLater(new DumbAwareRunnable() {
if (myTargetComponent != null) {
UiNotifyConnector.doWhenFirstShown(myTargetComponent, new DumbAwareRunnable() {
@Override
public void run() {
myUpdater.updateActions(false, false);
}
}, ModalityState.stateForComponent(myTargetComponent));
});
}
}