@Override
  public void paint(Graphics g, JComponent c) {
    super.paint(g, c);

    if (!(c instanceof ComboBoxAction.ComboBoxButton button)) return;

    if (!button.isArrowVisible()) {
      return;
    }

    if (UIUtil.isUnderWin10LookAndFeel()) {
      Icon icon = ComboBoxAction.getArrowIcon(button.isEnabled());
      int x = button.getWidth() - icon.getIconWidth() - button.getInsets().right - button.getMargin().right - JBUIScale.scale(3) + button.getArrowGap();
      int y = (button.getHeight() - icon.getIconHeight()) / 2;
      icon.paintIcon(null, g, x, y);
    }
    else {
      Graphics2D g2 = (Graphics2D)g.create();
      try {
        int iconSize = JBUIScale.scale(16);
        int x = button.getWidth() - iconSize - button.getInsets().right - button.getMargin().right + button.getArrowGap(); // Different icons correction
        int y = (button.getHeight() - iconSize)/2;

        g2.translate(x, y);
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_NORMALIZE);

        g2.setColor(JBUI.CurrentTheme.Arrow.foregroundColor(button.isEnabled()));

        Path2D arrow = new Path2D.Float(Path2D.WIND_EVEN_ODD);
        arrow.moveTo(JBUIScale.scale(3.5f), JBUIScale.scale(6f));
        arrow.lineTo(JBUIScale.scale(12.5f), JBUIScale.scale(6f));
        arrow.lineTo(JBUIScale.scale(8f), JBUIScale.scale(11f));
        arrow.closePath();

        g2.fill(arrow);
      }
      finally {
        g2.dispose();
      }
    }
  }
@Override
  public void paint(Graphics g, JComponent c)