Small LookAndFeel/Colour issue


#1

Some Components update their opaque-state (like ListBox) in the ColourChanged-callback.
If you set a new LookAndFeel with replaces opaque-colours with transparent-colours, you may have wrong opaque-states.

Solution: just add a colourChanged() call into sendLookAndFeelChange() - thats all

[code]void Component::sendLookAndFeelChange()
{
const WeakReference safePointer (this);
repaint();
lookAndFeelChanged();
colourChanged(); // <------ new

if (safePointer != nullptr)
{

[/code]


#2

Yep, sounds good! Thanks!


#3

found another small one

ComboBox isButtonDown parameter has different const-status in implementation (you get an warning when overriding it)

juce_LookAndFeel.h

    virtual void drawComboBox (Graphics& g, int width, int height,
                               bool isButtonDown,
                               int buttonX, int buttonY,
                               int buttonW, int buttonH,
                               ComboBox& box);

juce_LookAndFeel.cpp

void LookAndFeel::drawComboBox (Graphics& g, int width, int height,
                                const bool isButtonDown,
                                int buttonX, int buttonY,
                                int buttonW, int buttonH,
                                ComboBox& box)

#4

eh? it’s perfectly ok for the header and cpp to have different constnesses for primitives like that.


#5

ok, didn’t now (I copied the function-head from the implementation for overriding it)