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

Marked as reviewed by kizune (Reviewer).

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

PR Review: https://git.openjdk.org/jdk/pull/22416#pullrequestreview-2466473702

Reply via email to