On Tue, 13 Oct 2026 16:24:39 GMT, Marius Hanl <[email protected]> wrote:

>>> > > Well, you can `bind` a property... good luck setting it then.
>>> > > Never quite understood why it was decided that in the CSS system, `set` 
>>> > > and `bind` aren't the ultimate truth, but can be overridden by the 
>>> > > users own stylesheet (but not the user agent stylesheet).
>>> > > I mean `USER` in browser terminology means the browser user (browsers 
>>> > > allow for stylesheets set directly by the end user, that fit between 
>>> > > the browsers own default look (`USER_AGENT`) and the website developers 
>>> > > look (`AUTHOR`).
>>> > > However, in JavaFX, `USER` has been conflated with application 
>>> > > developer... it should have been the end user.
>>> > 
>>> > 
>>> > 100% agree. This behavior is very confusing and feels just wrong.
>>> 
>>> There have been previous discussions on the mailing list and in JBS about 
>>> the wrong ordering. Setting a property from the code should override CSS, 
>>> but it's the other way around. In my opinion the ordering should be fixed, 
>>> but it will break the current behavior.
>> 
>> The **current** behavior is also broken to be honest, and unfixable (ie. 
>> `set` seems to work, then gets clobbered at random depending on when CSS 
>> will run again -- which is not guaranteed to run each frame).
>> 
>> I would be all for to do a true fix for that, extending this:
>> 
>> 
>> /**
>>  * Enumeration of the possible source or origin of a stylesheet and styles.
>>  * @since JavaFX 8.0
>>  */
>> public enum StyleOrigin {
>>     /** The stylesheet is a user-agent stylesheet */
>>     USER_AGENT,
>>     /** The value of a property was set by the user through a call to a set 
>> method */
>>     USER,
>>     /** The stylesheet is an external file */
>>     AUTHOR,
>>     /** The style is from the Node via setStyle */
>>     INLINE
>> }
>> 
>> Just add:
>> 
>>     /** Programmatic (new) */ 
>>     PROGRAMMATIC
>> 
>> 
>> The only slight annoyance here is that `USER` is specifically documented 
>> that it is for the `set` method, but as we didn't specify priorities here 
>> (and AFAIK nowhere in public API) we could just change the order as well (it 
>> is basically just implied from how CSS works in browsers, but undocumented).
>
> +1 from my side. If you already have an implementation in your head, feel 
> free to open a draft PR, I will review.

I may do so, but will wait a bit until some other large-ish PR's are in :)

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

PR Review Comment: https://git.openjdk.org/jfx/pull/2343#discussion_r4503268064

Reply via email to