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 verified and it works as expected. ------------- Marked as reviewed by abhiscxk (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/22416#pullrequestreview-2469591810
