On Tue, 7 Feb 2023 23:16:14 GMT, Alexander Zuev <kiz...@openjdk.org> wrote:
>> src/java.desktop/share/classes/javax/swing/text/DefaultCaret.java line 1054: >> >>> 1052: if (rate != 0) { >>> 1053: if (component != null && component.isEditable()) { >>> 1054: if (flasher == null) { >> >> So later if there is a non-editable component, what happens ? >> Some existing logic for that will kick in ? > > Yes, when the the caret is to be assigned to a component it will reset the > blink rate and the logic will kick in. Manually tested with the possible > scenarios like adding custom set blink rate cursor to a non-editable > component and then turn it into editable later, add to editable and switch to > non-editable later and so on. So if I go back and look at the code before your previous fix, there was no check, so the timer is created and then I'd expect applies when the caret is installed on a component. Here that behaviour is changed, so that if we create a caret, then call setBlinkRate(), and then install() then the blink rate appears to be ignored whereas before 4512626 it was applied. ------------- PR: https://git.openjdk.org/jdk20/pull/122