On Wed, 26 Nov 2025 17:04:30 GMT, Alexey Ivanov <[email protected]> wrote:
>> When I was working on >> [JDK-8369327](https://bugs.openjdk.org/browse/JDK-8369327) I got a >> suggestion to update the code that disables unnecessary events: >> https://github.com/openjdk/jdk/pull/27682#discussion_r2487686109 >> >> After checking that code more closely, I found that it does not work in all >> cases. The checks were first added in >> [JDK-7125456](https://bugs.openjdk.org/browse/JDK-7125456). It looks like >> only the case for the select method was fixed. Other cases still cause >> unnecessary events, and even more events happen when trying to add multi >> selection mode: >> https://github.com/openjdk/jdk/pull/27682#issuecomment-3487434403 >> >> So I made a new bug for this issue and fixed it separately. >> >> The >> [spec](https://github.com/openjdk/jdk/blob/8531fa146be1da5e96c0f23091882a27c67d7893/src/java.desktop/share/classes/java/awt/List.java#L899): >> >> * Adds the specified item listener to receive item events from >> * this list. Item events are sent in response to user input, but not >> * in response to calls to {@code select} or {@code deselect}. >> >> >> The new test checks most of the methods in the `java.awt.List` class. It >> passes on linux/windows, confirming that the same behavior is implemented in >> other toolkits (unfortunately on linux it is not stable enough so I had to >> problemlist it due to >> [JDK-8201307](https://bugs.openjdk.org/browse/JDK-8201307)). The test only >> checks for programmatic changes to the list. I am sure that if I change it >> to test mix of programmatic/user changes it will fail. I will work on that >> in a follow up bug. >> >> @aivanov-jdk @azvegint please take a look > > test/jdk/java/awt/List/NoEvents/ProgrammaticChange.java line 103: > >> 101: verify(); >> 102: >> 103: // "makeVisible" may change the current selection > > I wonder how `makeVisible` can change the current selection. I'd say it's a > bug, if calling `makeVisible` changes the current selection. As of now, it should not change. However, this is lwawt, which uses the active swing l&f, and I do not see a reason why someone could not change that based on a design choice. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/28245#discussion_r2566930453
