On Tue, 16 May 2023 10:32:00 GMT, Karthik P K <k...@openjdk.org> wrote:

>> Since surrogate pairs are internally considered as 2 characters and text 
>> field is null in `HitInfo` when `getInsertionIndex` is invoked from 
>> `TextFlow`, wrong insertion index was returned.
>> 
>> Updated code to calculate insertion index in `getHitInfo` method of 
>> `PrismTextLayout` class when `hitTest` of trailing side of surrogate pair is 
>> requested. Since text runs are processed in this method already, calculating 
>> the insertion index in this method looks better than calculating in 
>> `getInsertionIndex` of `HitInfo` method.
>> The latter approach also requires the text to be sent to `HitInfo` as 
>> parameter from the `hitTest` method of `TextFlow`. If the number of `Text` 
>> nodes in `TextFlow` are very large, processing all the `Text` nodes on each 
>> `hitTest` method invocation might cause performance issue. Hence implemented 
>> first approach.
>> 
>> Added system test to validate the fix.
>
> Karthik P K has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Change insertion index initialization approach. Add additional test

Added new test to validate character index and insertion index in wrapped text.
Made optimizations to use single mouse move function in all the tests.

@andy-goryachev-oracle , above failure is caused because test is asserting 
before the mouse event handler could retrive hitinfo values. So added small 
delays in all the tests to make sure that the text is rendered and test becomes 
stable before getting the hitinfo values and assertion. Please let me know if 
you are able to run all the tests.

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

PR Comment: https://git.openjdk.org/jfx/pull/1091#issuecomment-1552785330

Reply via email to