When a stylesheet is present on a control that specifies a skin, and the user attempts to set the skin to something else using setSkin (and perhaps also triggers a CSS re-evaluation using setStyle()), the Skin gets reset to the CSS value.
A ChangeListener on skinProperty sees the Skin change twice (cssSkin -> userSkin... followed by userSkin -> cssSkin).
A ChangeListener on skinProperty sees the Skin change twice (cssSkin -> userSkin... followed by userSkin -> cssSkin).