On Sun, 22 Jan 2023 16:16:56 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:
> > As they ought to. All UI classes assume that the source for the property > > listener is the component it is the delegate for, which is why we see some > > classes passing e.getSource() and others passing the protected field. It's > > not something we can test, because the issues will arise when other people > > invoke the listener, and the JDK code doesn't (seem to) directly call it. > > It is called to notify the listener since we add the UI delegate to the list: > `list.addPropertyChangeListener(this);` in the SynthListUI. > > It means that if the application/test will add `another UI delegate` to the > list, then `updateStyle((JList)e.getSource());` will read the style from > `another UI delegate`, not the current/protected field. It seems true that > the code expects to always read the styles from the protected field, and that > intention seems to be the opposite of what we do in the current change, no? I have tried with a test where it is seen that **object for e.getSource() and "c" and "list" are sam**e so practically there is no functional change for this fix....Please suggest what else you want the test to do? UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel"); JFrame frame = new JFrame(); JList list = new JList(); list.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; @Override public int getSize() { return strings.length; } @Override public Object getElementAt(int i) { return strings[i]; } }); frame.getContentPane().add(list); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); list.addPropertyChangeListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { System.out.println("In test " + evt.getSource()); } }); list.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); SynthListUI e.getSource _javax.swing.JList[,0,0,119x100,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@10aa41f2,flags=335 54728,maximumSize=,minimumSize=,preferredSize=,fixedCellHeight=-1,fixedCellWidth=-1,horizontalScrollIncrement=-1,selectionBackground=DerivedColor (color=57,105,138 parent=nimbusSelectionBackground offsets=0.0,0.0,0.0,0 pColor=57,105,138,selectionForeground=DerivedColor(color=255,255,255 par ent=nimbusLightBackground offsets=0.0,0.0,0.0,0 pColor=255,255,255,visibleRowCount=8,layoutOrientation=0]_ SynthListUI c: _javax.swing.JList[,0,0,119x100,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@10aa41f2,flags=33554728,max imumSize=,minimumSize=,preferredSize=,fixedCellHeight=-1,fixedCellWidth=-1,horizontalScrollIncrement=-1,selectionBackground=DerivedColor(color=57 ,105,138 parent=nimbusSelectionBackground offsets=0.0,0.0,0.0,0 pColor=57,105,138,selectionForeground=DerivedColor(color=255,255,255 parent=nimbu sLightBackground offsets=0.0,0.0,0.0,0 pColor=255,255,255,visibleRowCount=8,layoutOrientation=0]_ SynthListUI list: _javax.swing.JList[,0,0,119x100,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@10aa41f2,flags=33554728, maximumSize=,minimumSize=,preferredSize=,fixedCellHeight=-1,fixedCellWidth=-1,horizontalScrollIncrement=-1,selectionBackground=DerivedColor(color =57,105,138 parent=nimbusSelectionBackground offsets=0.0,0.0,0.0,0 pColor=57,105,138,selectionForeground=DerivedColor(color=255,255,255 parent=ni mbusLightBackground offsets=0.0,0.0,0.0,0 pColor=255,255,255,visibleRowCount=8,layoutOrientation=0]_ In test _javax.swing.JList[,0,0,119x100,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@10aa41f2,flags=33554728,maximumSiz e=,minimumSize=,preferredSize=,fixedCellHeight=-1,fixedCellWidth=-1,horizontalScrollIncrement=-1,selectionBackground=DerivedColor(color=57,105,13 8 parent=nimbusSelectionBackground offsets=0.0,0.0,0.0,0 pColor=57,105,138,selectionForeground=DerivedColor(color=255,255,255 parent=nimbusLightB ackground offsets=0.0,0.0,0.0,0 pColor=255,255,255,visibleRowCount=8,layoutOrientation=0]_ ------------- PR: https://git.openjdk.org/jdk/pull/11875