On Mon, 21 Aug 2023 10:42:07 GMT, Abhishek Kumar <abhis...@openjdk.org> wrote:

>> Disabled JPasswordField foreground color was not grayed out in GTK LAF.
>> 
>> The foreground color in disabled state was close to black color (RGB 0,0,0) 
>> for password field which is not differentiable from enabled state foreground 
>> color.
>> 
>> To fix for this problem, the widget type is changed to `TEXT_AREA `for 
>> disable password field which returns the foreground color as gray. Checked 
>> with Oracle linux as well and fix worked fine.
>> 
>> An automated test case has been added and checked in CI, link is added in 
>> JBS. Test mentioned in JBS also works fine with the fix.
>
> Abhishek Kumar has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Fix extended for TextField, FormattedTextField, Spinner

src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.c line 2413:

> 2411:             && state_type == GTK_STATE_INSENSITIVE && color_type == 
> TEXT_FOREGROUND) {
> 2412:             widget_type = TEXT_AREA;
> 2413:         }

I guess l2403 has same checks which can be clubbed together

if (widget_type == TEXT_FIELD || widget_type == PASSWORD_FIELD
            || widget_type == SPINNER_TEXT_FIELD || widget_type == 
FORMATTED_TEXT_FIELD) {
        if (state_type == GTK_STATE_SELECTED && color_type == TEXT_BACKGROUND} 
            || state_type == GTK_STATE_INSENSITIVE && color_type == 
TEXT_FOREGROUND) {
            widget_type = TEXT_AREA;
    }
}


What do you think?

test/jdk/javax/swing/JPasswordField/TestDisabledPasswordFieldForegroundColor.java
 line 67:

> 65:         boolean testFail = false;
> 66:         robot = new Robot();
> 67:         robot.setAutoDelay(1000);

autoDelay normally is 100ms

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

PR Review Comment: https://git.openjdk.org/jdk/pull/15263#discussion_r1312520289
PR Review Comment: https://git.openjdk.org/jdk/pull/15263#discussion_r1312520363

Reply via email to