On Thu, 28 Nov 2024 03:05:27 GMT, Prasanta Sadhukhan <[email protected]> 
wrote:

>> When a textfield is embedded in a TableCellEditor in a JTable in Aqua L&F 
>> and space is entered and caret moved back and forth by pressing left/right 
>> arrow button, an artifact is seen, which is basically the caret is not 
>> properly repainted leaving behind its trails.
>> 
>> When caret is moved, it is repainted every time by "damaging" the area 
>> surrounding the caret to cause it to be repainted in a new location. 
>> AquaCaret overrides the default "damage" code to intersect the caret area 
>> with the border insets so that it does not damage the AquaBorder area..
>> For TextField case, AquaTextFieldBorder insets is removed from AquaTextField 
>> and then intersected with AquaCaret to get the dirry region which is then 
>> repainted, so as to not damage the border but it is done irrespective of 
>> whether border is shown or not, so proper dirty region is not repainted 
>> leaving behind artifacts when the caret is moved around...
>> 
>> Fix is to see if border to be painted is not opaque in which case the proper 
>> dirty region is calculated which is then used in repaint logic to repaint 
>> the component..
>
> Prasanta Sadhukhan has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Test fix

test/jdk/javax/swing/JTable/TestCaretArtifact.java line 51:

> 49:         If artifact is seen, press Fail else press Pass.""";
> 50: 
> 51:     public static void  main(String[] args) throws Exception {

small nitpick but I think there's an extra whitespace here after void

test/jdk/javax/swing/JTable/TestCaretArtifact.java line 62:

> 60: 
> 61: 
> 62:     public static JFrame createUI()  {

extra whitespace here too

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

PR Review Comment: https://git.openjdk.org/jdk/pull/22416#discussion_r1870194336
PR Review Comment: https://git.openjdk.org/jdk/pull/22416#discussion_r1870194570

Reply via email to