Icon icon = b.getComboIcon(); int iconWidth = icon.getIconWidth() + 6; return new Dimension(d.width + insetsW + iconWidth, d.height + insetsH);
d = super.getMinimumSize(c); Insets arrowMargin = arrowButton.getMargin(); Insets comboInsets = comboBox.getInsets(); if (editor instanceof JComponent) { Insets editorInsets = ((JComponent) editor).getInsets(); d.height += editorInsets.top + editorInsets.bottom; } d.height += arrowMargin.top + arrowMargin.bottom; d.height += comboInsets.top + comboInsets.bottom;
  public Dimension getMinimumSize(JComponent c)  {    Dimension d = getDisplaySize();    MetalComboBoxButton b = (MetalComboBoxButton) arrowButton;    Insets insets = b.getInsets();    int insetsH = insets.top + insets.bottom;    int insetsW = insets.left + insets.right;    if (!comboBox.isEditable())      {        Icon icon = b.getComboIcon();    int iconWidth = icon.getIconWidth() + 6;        return new Dimension(d.width + insetsW + iconWidth, d.height + insetsH);      }    else      // FIXME: the following dimensions pass most of the Mauve tests, but      // I don't yet understand the logic behind this...it is probably wrong      return new Dimension(d.width + insetsW + (d.height + insetsH) - 4,           d.height + insetsH + 1);  }