On Sat, 23 Jan 2021 23:12:35 GMT, Nir Lisker <nlis...@openjdk.org> wrote:
>> The JavaFX API does not provide a way to get the state of CAPS LOCK or NUM >> LOCK on the keyboard. Being able to read the lock state would allow an >> application to inform the user that caps lock was enabled for passwords or >> other usages where the keyboard input might not be echoed. It would also >> allow an application to do spell checking / auto-correction that might >> ordinarily be skipped when typing all upper-case letters. >> >> We need an equivalent JavaFX API to the existing AWT >> `java.awt.ToolKit::getLockingKeyState` method. A natural place to put this >> in JavaFX is in the `javafx.application.Platform` class, so we propose to >> create a new `Platform::isKeyLocked` method, which will take a `KeyCode` -- >> either `CAPS` or `NUM_LOCK` -- and return an `Optional<Boolean>` indicating >> whether or not that key is in the locked or "on" state. If we can't read the >> key state on a particular platform, we will return `Optional.empty()`, >> rather than throwing a runtime exception as AWT does. >> >> I have provided both an automated Robot test and a manual test. The latter >> is needed primarily because we can't set the CAPS lock on Mac using Robot, >> but also because we want way to test the case where the user has enabled >> CAPS lock before the program starts. > > modules/javafx.graphics/src/main/java/com/sun/javafx/tk/quantum/QuantumToolkit.java > line 1250: > >> 1248: default: >> 1249: return com.sun.glass.events.KeyEvent.VK_UNDEFINED; >> 1250: } > > Also expression switch here. See above. > modules/javafx.graphics/src/main/java/javafx/application/Platform.java line > 336: > >> 334: /** >> 335: * Returns a flag indicating whether the key corresponding to >> {@code keyCode} >> 336: * is in the locked or "on" state. > > I would write "locked, or "on", state" or "locked (or "on") state" because in > the current form it can be understood as 2 different conditions. Agreed. This was nagging at the back of my mind when I read it, but I didn't do anything about it. ------------- PR: https://git.openjdk.java.net/jfx/pull/385