On Fri, 12 Aug 2022 18:42:16 GMT, Andy Goryachev <[email protected]> wrote:

> 
> @kleopatra : Thank you so much for your effort to research the alternatives.
> 

thinking about alternatives is our job, isn't it :)

> The main issue that necessitates creation of install() and moving it outside 
> of the skin's constructor is the fact that certain code just cannot be inside 
> of the skin's constructor - because the old skin is still attached. So it 
> must be called after the old skin has been removed in setSkin(). I don't 
> think there is a way around it.

There might be such code, but I doubt that there is anything (at least nothing 
validly installed) in our skins. Haven't looked into the install children that 
are defined in the control itself (like f.i. editors in the combo/spinner et 
al).

> 
> Those user-defined skins (and the affected core skins) that modify singletons 
> or rely on internals of the superclass - must be refactored. 

As long as custom classes play by the rules (aka: don't violate the spec) we'll 
have a hard time imposing code changes onto custom classes. Or if we do, we 
might see us in the middle of many pointed fingers. Like (from [kinds of 
compatibilty](https://wiki.openjdk.org/display/csr/Kinds+of+Compatibility))

> While an end-user may not care why a program does not work with a newer 
> version of a library, what contracts are being followed or broken should 
> determine which party has the onus for fixing the problem

-------------

PR: https://git.openjdk.org/jfx/pull/845

Reply via email to