void () { // wrapping in `invokeLater` here reduces the number of events posted to EDT in the case of multiple IDE frames Application app = ApplicationManager.getApplication(); app.invokeLater(() -> { var windowManager = WindowManager.getInstance(); if (windowManager == null) { return; } for (var frame : windowManager.getAllProjectFrames()) { var statusBar = frame.getStatusBar(); if (statusBar != null) { if (isRunning()) { statusBar.startRefreshIndication(getText()); } else { statusBar.stopRefreshIndication(); } } } }, ModalityState.any(), app.getDisposed()); }