On Tue, 12 Apr 2022 00:22:31 GMT, Harshitha Onkar <d...@openjdk.java.net> wrote:
>> Previously while tabbing through the JTable cell, the cell highlighter/focus >> ring was not visible against the selection background. >> >> Changes are made to Aqua LAF to derive a lighter focus ring color by >> changing saturation and setting brightness component to 100% of original >> focus ring color so that it is visible while tabbing through `JTable` cells. >> A new method is added for this purpose which takes in `focusRingColor`, does >> adjustment to saturation and brightness and returns a new focus ring color. >> There are edge cases where the HSB transformation does not yield the right >> focus ring color, for these cases a default color is returned. >> >> **Edge Cases** >>  >> >> The edge case condition consists of two parts – >> To handle white/black colors - (hsbValues[0] == 0 && hsbValues[1] == 0) - >> representing hue and saturation of zero obtained for black, white or exactly >> grey (red=green=color) conditions >> To handle grayish colors - hsbValues[1] <= satGrayScale where satGrayScale >> <= 0.10 . For any given hue and brightness, a saturation of less than or >> equal to 10% represents grayish tint colors. >> (The second case was added to accommodate grayish focus ring color returned >> by system when Accent color = Graphite. The returned color is not exactly >> gray but grayish (r=135, g=135, b=140)). >> To accommodate a more generic case of grayish colors, the satGrayScale has a >> threshold or buffer of 0.10 or 10%. >> >> Used the following resources to test out different grayish colors and >> optimal saturation offsets used in `deriveLighterFocusRing()`. >> >> - [RapidTables](https://www.rapidtables.com/convert/color/rgb-to-hsl.html) >> - [Colorizer](http://colorizer.org/). >> - [Chart Link](https://codepen.io/HunorMarton/details/eWvewo) >> >> A test case is added to compare the RGB difference between the original >> focus ring color & selection background and the new focus ring color & >> selection background. >> >> PS: The native L&F (Mac OS) and Swing L&F for JTable cell tabbing differs >> (on native tables the cell background turns white on focus with a cell focus >> ring). Since the background for Swing tables can be set by users and also >> overridden by subclassing `DefaultTableCellRenderer`, and to adhere to >> current implementation of Swing, the white cell background changes are not >> incorporated. Only the Focus Ring/ Cell Highlighter is made more prominent. > > Harshitha Onkar has updated the pull request incrementally with one > additional commit since the last revision: > > added new color to CSystemColors.m - CELL_HIGHLIGHT_COLOR src/java.desktop/macosx/classes/com/apple/laf/AquaLookAndFeel.java line 392: > 390: > 391: // for table cell highlighter > 392: final Color cellFocusRing = > AquaImageFactory.getCellHighlightColorUIResource(); overall looks ok. I believe you have tested well in BigSur and Monterey also.. Minor nit, this cellFocusRing should be "cellFocusRingColor" like other color variables. ------------- PR: https://git.openjdk.java.net/jdk/pull/7768