> 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 ------------- Changes: - all: https://git.openjdk.org/jdk/pull/22416/files - new: https://git.openjdk.org/jdk/pull/22416/files/005ac187..1797ded4 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=22416&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=22416&range=00-01 Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod Patch: https://git.openjdk.org/jdk/pull/22416.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/22416/head:pull/22416 PR: https://git.openjdk.org/jdk/pull/22416
