There are many examples where the Aqua LAF overrides a property only if the 
property has not been set by the application.
So, I think this behavior is kosher, even if it could be surprising. I’m not 
sure why this case should be different.

This way of describing the behavior might be clearer than saying that the 
default may be LAF dependent, which does
not acknowledge that the LAF might set the property.

In wishful thinking mode: What is lacking is a way for a LAF to interpose on a 
property — making a distinction between
the application-specified value (which might be an explicit value meaning “use 
the default behavior") and the implementation behavior.

> On Jul 30, 2026, at 1:15 PM, Philip Race <[email protected]> wrote:
> 
> There is a comment in the bug report noting this "wiggle room", but I'm not 
> very happy with it because.
> Whilst it ignores the "initial" value, it does not ignore subsequent 
> settings. i.e you can reliably turn it off and on.
> This is at the very least confusing.
> I think that if the current behaviour is to be preserved, then the spec. 
> should be updated to specifically say that the
> *default* may be L&F dependent.
> But it also may be surprising to some apps that think it is off to find that 
> it is in fact on because of the L&F.
> Although they do have the "may be ignored" uncertainty already. Sadly there's 
> no way to find out if it will be ignored.
> 
> The upshot is that something should change, and it is either the spec. or the 
> implementation. The choice here is the implementation.
> 
> -phil.
> 
> On 7/30/26 12:40 PM, Alan Snyder wrote:
>>> Aqua classes for text components enables dragEnabled by default although 
>>> setDragEnabled spec cites `"The default value of the dragEnabled property 
>>> is false. "` and there is nothing in Aqua L&F that mentions otherwise as to 
>>> why the default is overridden.
>> I believe the default is overridden because native text fields support drag 
>> of selected text without any custom configuration, at least when created 
>> using InterfaceBuilder.
>> 
>> Aqua LAF is designed to mimic both the appearance and *behavior* of native 
>> components.
>> 
>> The documentation states that a LAF can ignore this property. That could be 
>> interpreted as ignoring the property regardless of whether the value is true 
>> or false, not just when it is true.
>> 
>> 
>> 
>> 
> 

Reply via email to