RFR: 8178368: Right and Center alignment of text field works incorrectly [v4]

Andy Goryachev angorya at openjdk.org
Fri Feb 10 16:51:57 UTC 2023


On Fri, 10 Feb 2023 05:39:33 GMT, Karthik P K <kpk at openjdk.org> wrote:

>> When Text width was more than TextField width, the logic to update `textTranslateX` in `updateCaretOff` method was causing the issue of unexpected behavior for Right and Center alignment.
>> 
>> Made changes to update `textTranslateX` in `updateCaretOff` method only when text width is less than text field width i.e `delta` is positive. 
>> For both right and center alignments, the `textTranslateX` value calculated in `updateTextPos` method will be updated without any condition so that expected behavior is achieved for all scenarios of text width relative to text field width. 
>> 
>> Added unit tests to validate LEFT, CENTER and RIGHT alignments. RIGHT and CENTER alignment tests are expected to fail without the fix provided in this PR.
>
> Karthik P K has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
> 
>  - Merge branch 'openjdk:master' into textfield_issue_fix
>  - Update comments
>  - Fix textfield right and center alignment issues
>  - Fix for TextField right alignement issue

I think the behavior with the fix is correct - it should follow the alignment setting.

@hjohn is right on one account - scroll to cursor is not working right.  to reproduce
- set the alignment to either *_RIGHT or *_CENTER
- set a long text string (longer than can fit the control)
- click on the visible area and repeatedly move cursor left beyond the left edge.
Expected:
-- the view should scroll horizontally to bring the caret back into the view
Observed with the fix:
-- it doesn't

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

PR: https://git.openjdk.org/jfx/pull/980


More information about the openjfx-dev mailing list