[revd lesya] Make update actions on setTargetComponent() async, since it otherwise is being called on partially initialized UI classes.

This commit is contained in:
Maxim Shafirov
2008-10-22 18:47:10 +04:00
parent ef7a2ea9d4
commit 193b3aeac3
@@ -8,9 +8,9 @@ import com.intellij.openapi.actionSystem.ex.ActionButtonLook;
import com.intellij.openapi.actionSystem.ex.ActionManagerEx;
import com.intellij.openapi.actionSystem.ex.AnActionListener;
import com.intellij.openapi.actionSystem.ex.CustomComponentAction;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.keymap.Keymap;
import com.intellij.openapi.keymap.KeymapManagerListener;
@@ -702,7 +702,14 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
public void setTargetComponent(final JComponent component) {
myTargetComponent = component;
updateActions();
if (myTargetComponent != null && myTargetComponent.isVisible()) {
ApplicationManager.getApplication().invokeLater(new Runnable() {
public void run() {
updateActions();
}
}, ModalityState.stateForComponent(myTargetComponent));
}
}
protected DataContext getToolbarDataContext() {