RFR: 8290844: Add Skin.install() method [v4]

Jeanette Winzenburg fastegal at openjdk.org
Sat Sep 3 10:18:47 UTC 2022


On Fri, 12 Aug 2022 18:15:37 GMT, Andy Goryachev <angorya at openjdk.org> 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


More information about the openjfx-dev mailing list