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