void (int visualLine, int lineY, List<? extends GutterMark> row, final Graphics2D g) { processIconsRowForY(lineY, row, (x, y, renderer) -> { boolean isLoading = myLastActionableClick != null && myLastActionableClick.myProgressVisualLine == visualLine && myLastActionableClick.myProgressGutterMark == renderer; Icon icon = scaleIcon(renderer.getIcon()); if (isLoading) { Icon loadingIcon = scaleIcon(AnimatedIcon.Default.INSTANCE); x -= (loadingIcon.getIconWidth() - icon.getIconWidth()) / 2; y -= (loadingIcon.getIconHeight() - icon.getIconHeight()) / 2; icon = loadingIcon; } AffineTransform old = setMirrorTransformIfNeeded(g, x, icon.getIconWidth()); try { icon.paintIcon(this, g, x, y); } finally { if (old != null) g.setTransform(old); } }); }