Most of JUCE widgets feature functionality to control how value changes propagates notifications. ColourSelector seems a bit gimped in that regard. These set of changes adds that functionality without any change to current usage or regressions:
Specifically, this allows synchronizing the internal value to something else (for instance, parameters), without getting async feedback loops and jitter. Let me know what you think,
Thanks, and yes I believe so. There is one difference, though:
In the constructor, you’re sending an asynchronous message that will arrive at some unknown time with no apparent reason? In my version, it doesn’t send a notif on construction (the ColourSelector being constructed to some default value should be an invariant not needing notification, right?). Since you’re not able to attach a listener before constructing it, it seems dubious anyway…
Going back to the parameter example, dynamically creating a colourselector controlled by a external parameter will create an unavoidable change notification that cannot be distinguished from actual user changes - ie. this will create a beginedit() / setparameter() / endedit() sequence that disables any host automation.