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

>> - added Skin.install()
>> - javadoc changes for Skinnable.setSkin(Skin)
>> 
>> no code changes for Skinnable.setSkin(Skin) yet.
>
> Andy Goryachev has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   8290844: review comments

that's basically the problem we identified as not solvable by current api, 
though I would formulate slightly differently: there are two bugs in our 
current implementation, one in step 3 and one in step 6

    // bug in step 3: should be replacing the property only if not set be the 
user
    if  (control.getInputMethodRequest() == USER1) { // no means to detect user 
vs. skin installed
             // do nothing
    }  else {
            control.setInputMethodRequest(SKIN1);
    }

    // bug in step 6: nulling unconditionally in dispose is wrong, should only 
do if installed by the skin
    if (control.getInputMethodRequest() == SKIN1) 
control.setInputMethodRequest(null);

Yes: there is no way to differentiate USER1 from SKIN1 in step 5 without new 
API :) There are options besides a new life-cycle, but I agree that adding a 
life-cycle state is the most clean.

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

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

Reply via email to