void (@NotNull EditorGutterComponentEx gutter, @Nullable Icon icon, @Nullable Integer line) { if (gutter.getClientProperty("editor.gutter.context.menu") != null) return; boolean requireRepaint = false; if (gutter.getClientProperty("line.number.hover.icon") != icon) { gutter.putClientProperty("line.number.hover.icon", icon); gutter.putClientProperty("line.number.hover.icon.context.menu", icon == null ? null : ActionManager.getInstance().getAction("XDebugger.Hover.Breakpoint.Context.Menu")); if (icon != null) { gutter.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); // Editor updates cursor on MouseMoved, set it explicitly } requireRepaint = true; } if (!Objects.equals(gutter.getClientProperty("active.line.number"), line)) { gutter.putClientProperty("active.line.number", line); requireRepaint = true; } if (requireRepaint) { gutter.repaint(); } }