From 12a74bacce2f20724ec6655e89e517165f9ae2d4 Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Tue, 14 Jul 2015 19:30:58 +0300 Subject: [PATCH] EDT access check: replace assert with invokeLaterIfNeed --- .../wm/impl/status/IdeStatusBarImpl.java | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/IdeStatusBarImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/IdeStatusBarImpl.java index 4b1ba760b65b..c15f9afa14ce 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/IdeStatusBarImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/IdeStatusBarImpl.java @@ -191,16 +191,31 @@ public class IdeStatusBarImpl extends JComponent implements StatusBarEx { @Override public void addWidget(@NotNull final StatusBarWidget widget) { - addWidget(widget, Position.RIGHT, "__AUTODETECT__"); + UIUtil.invokeLaterIfNeeded(new Runnable() { + @Override + public void run() { + addWidget(widget, Position.RIGHT, "__AUTODETECT__"); + } + }); } @Override - public void addWidget(@NotNull final StatusBarWidget widget, @NotNull String anchor) { - addWidget(widget, Position.RIGHT, anchor); + public void addWidget(@NotNull final StatusBarWidget widget, @NotNull final String anchor) { + UIUtil.invokeLaterIfNeeded(new Runnable() { + @Override + public void run() { + addWidget(widget, Position.RIGHT, anchor); + } + }); } private void addWidget(@NotNull final StatusBarWidget widget, @NotNull final Position pos) { - addWidget(widget, pos, "__IGNORED__"); + UIUtil.invokeLaterIfNeeded(new Runnable() { + @Override + public void run() { + addWidget(widget, pos, "__IGNORED__"); + } + }); } @Override @@ -314,7 +329,6 @@ public class IdeStatusBarImpl extends JComponent implements StatusBarEx { } private void addWidget(@NotNull final StatusBarWidget widget, @NotNull final Position pos, @NotNull final String anchor) { - assert EventQueue.isDispatchThread() : "Must be EDT"; myOrderedWidgets.add(widget.ID()); JPanel panel; @@ -405,9 +419,14 @@ public class IdeStatusBarImpl extends JComponent implements StatusBarEx { final StatusBarWidget.Multiframe mfw = (StatusBarWidget.Multiframe)widget; updateChildren(new ChildAction() { @Override - public void update(IdeStatusBarImpl child) { - StatusBarWidget widgetCopy = mfw.copy(); - child.addWidget(widgetCopy, pos, anchor); + public void update(final IdeStatusBarImpl child) { + UIUtil.invokeLaterIfNeeded(new Runnable() { + @Override + public void run() { + StatusBarWidget widgetCopy = mfw.copy(); + child.addWidget(widgetCopy, pos, anchor); + } + }); } }); }