void (@NotNull PointInfo info) { ClickInfo clickInfo = myLastActionableClick; if (clickInfo == null) return; boolean[] removed = {false}; EdtScheduledExecutorService.getInstance().schedule(() -> { if (myLastActionableClick != clickInfo || removed[0]) return; clickInfo.myProgressVisualLine = info.visualLine; clickInfo.myProgressGutterMark = info.renderer; repaint(); }, Registry.intValue("actionSystem.popup.progress.icon.delay", 500), TimeUnit.MILLISECONDS); myLastActionableClick.myProgressRemover = () -> { EDT.assertIsEdt(); removed[0] = true; if (myLastActionableClick == clickInfo) { clickInfo.myProgressVisualLine = -1; clickInfo.myProgressGutterMark = null; repaint(); } }; }