On Tue, 7 Feb 2023 23:14:23 GMT, Damon Nguyen <[email protected]> wrote:

>> Before the fix, a JComboBox in Nimbus L&F would have normal black text even 
>> when the JComboBox was disabled if SynthComboBoxRenderer was replaced with a 
>> DefaultListCellRenderer. This text should be greyed out like in other L&F's. 
>> When looking into the defaults for Nimbus L&F files for attributes and 
>> states of a JComboBox, it confirm that the intention for disabled 
>> JComboBoxes is nimbusDisabledText (which is grey text).
>> 
>> SynthComboBoxes have an additional check in its default 
>> SynthComboBoxRenderer that enables/disables the renderer itself. The 
>> SynthComboBoxRenderer inherits its enabled state from the parent ComboBox. 
>> Since the renderer with DefaultListCellRenderer is in a separate class 
>> without a reference to the comboBox, a listener was added to SynthComboBoxUI.
>> 
>> An additional issue occurred in DefaultListCellRenderer because the renderer 
>> overrode the listener's re-assigned enabled state. In testing, setting the 
>> enabled state in DefaultListCellRenderer is redundant for all L&F's and is 
>> not needed here. However, instead of removing it altogether, a conditional 
>> was added specifically to allow ComboBoxes to skip setting enabled state 
>> here.
>> 
>> After the fix, the Nimbus JComboBox with DLCR set matches the appearance of 
>> a normal Nimbus JComboBox. I can enable/disable the JComboBoxes in the test, 
>> and the UI elements behave and appear as expected.
>
> Damon Nguyen has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Update years. Add conditional

I ran the test on linux on GTK L&F. Screenshots of enabled/disabled 
JComboBoxes: 
![Screenshot 2023-02-08 
125006](https://user-images.githubusercontent.com/90066231/217648359-1caf92ae-5df7-4812-b2a8-dc8669d49235.png)
![Screenshot 2023-02-08 
125030](https://user-images.githubusercontent.com/90066231/217648362-4bae9ddb-8a5a-4f01-a053-95be832d458b.png)

They look fine to me.

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

PR: https://git.openjdk.org/jdk/pull/12390

Reply via email to