ComboBox textWhenNothingSelected rendering is inconsistent with other Labels



The rendering of the ComboBox’ textWhenNothingSelected can’t be changed using a LookAndFeel, and to make matters worse, it is inconsistent with the label rendering of LookAndFeel_V2 - while the LookAndFeel determines the textArea to draw the text in using label.getBorderSize(), ComboBox::paint reduces the label bounds by a hardcoded (2, 1) and draws the text inside that area.

This is my hacky modification of the ComboBox::paint method that renders the textWhenNothingSelected just like any other disabled label:

void ComboBox::paint (Graphics& g)
    getLookAndFeel().drawComboBox (g, getWidth(), getHeight(), isButtonDown,
                                   label->getRight(), 0, getWidth() - label->getRight(), getHeight(),

    if (textWhenNothingSelected.isNotEmpty()
         && label->getText().isEmpty()
         && ! label->isBeingEdited())
        label->setText(textWhenNothingSelected, dontSendNotification);
        label->paintEntireComponent(g, false);
        label->setText("", dontSendNotification);


Yep, the drawing code should really be in a LookAndFeel method. I’ll push something for this shortly.