RFR: 8258970: Disabled JPasswordField foreground color is wrong with GTK LAF [v2]
Prasanta Sadhukhan
psadhukhan at openjdk.org
Fri Sep 1 04:22:50 UTC 2023
On Mon, 21 Aug 2023 10:42:07 GMT, Abhishek Kumar <abhiscxk at 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
More information about the client-libs-dev
mailing list