Sebastian Lehrbaum
11/28/2023, 3:46 PMWindow(
...
onKeyEvent = { keyEvent ->
if (keyEvent.key == Key.Spacebar && keyEvent.type == KeyEventType.KeyDown) {
println("Got space") // happens even when a textfield consumes the key event first
true
} else {
false
}
}
)
SaurabhS
11/28/2023, 4:18 PMKeyDown
event. I fixed a similar problem yesterday caused by consuming only the KeyUp
event.Sebastian Lehrbaum
11/28/2023, 5:07 PMHamba
11/28/2023, 5:18 PMModifier.onFocusChanged { myFlag = it.isFocused }
Sebastian Lehrbaum
11/28/2023, 5:23 PMAlexander Maryanovsky
11/28/2023, 6:31 PMSebastian Lehrbaum
11/28/2023, 6:32 PMAlexander Maryanovsky
11/28/2023, 6:36 PMZach Klippenstein (he/him) [MOD]
11/28/2023, 7:04 PMAlexander Maryanovsky
11/28/2023, 7:05 PMSebastian Lehrbaum
11/28/2023, 7:06 PMGrant Toepfer
11/28/2023, 7:14 PMSebastian Lehrbaum
11/28/2023, 7:59 PMonKeyEvent
to the top most surface. In both cases, once the TextField was selected, no keyDown events were passed to the listeners.Alexander Maryanovsky
11/28/2023, 8:09 PMAlexander Maryanovsky
11/28/2023, 8:15 PMTextFieldKeyInput.process
consumes events that are KeyEvent.isTypedEvent
.Alexander Maryanovsky
11/28/2023, 8:16 PMandroid.view.KeyEvent.ACTION_DOWN
Alexander Maryanovsky
11/28/2023, 8:17 PMjava.awt.event.KeyEvent.KEY_TYPED
Alexander Maryanovsky
11/28/2023, 8:17 PMAlexander Maryanovsky
11/28/2023, 8:18 PMKeyEvent.isTypedEvent
is internalSebastian Lehrbaum
11/28/2023, 8:20 PMactual val KeyEvent.isTypedEvent: Boolean
get() = awtEventOrNull?.id == java.awt.event.KeyEvent.KEY_TYPED &&
awtEventOrNull?.keyChar?.isPrintable() == true
It also seems to be filtering correctly. It doesn't have a keyCode so it still needs some fixing, but that seems to be a way to go, thank you so much!Sebastian Lehrbaum
11/28/2023, 8:21 PMAlexander Maryanovsky
11/28/2023, 8:22 PMAlexander Maryanovsky
11/28/2023, 8:23 PMevent.isTypedEvent && event.key == <http://Key.SPACE|Key.SPACE>
Alexander Maryanovsky
11/28/2023, 8:24 PMKey.Spacebar
ratherSebastian Lehrbaum
11/28/2023, 8:32 PMkeyEvent.key
gives Key: Unknown keyCode: 0x0
. So does (keyEvent.nativeKeyEvent as java.awt.event.KeyEvent).keyCode
It appears that the events KEY_TYPED are rather special.
What does work is (keyEvent.nativeKeyEvent as java.awt.event.KeyEvent).extendedKeyCode == java.awt.event.KeyEvent.VK_SPACE
At least for now. Do you have any insight into whether that will stay this way? I'm not sure how stable this part is considered.Alexander Maryanovsky
11/28/2023, 8:34 PMawtEventOrNull?.keyChar
doesn’t help?Sebastian Lehrbaum
11/28/2023, 8:36 PMkeyEvent.awtEventOrNull?.keyChar == ' '
Works indeed, thanks. That is much nicer to readSebastian Lehrbaum
11/28/2023, 9:04 PMZach Klippenstein (he/him) [MOD]
11/29/2023, 1:40 AMAlexander Maryanovsky
11/29/2023, 4:54 AMAlexander Maryanovsky
11/29/2023, 4:57 AMAlexander Maryanovsky
11/29/2023, 4:59 AMZach Klippenstein (he/him) [MOD]
11/29/2023, 7:33 PMAlexander Maryanovsky
11/29/2023, 7:36 PMSebastian Lehrbaum
11/29/2023, 8:23 PMGot keyEvent KeyEvent(nativeKeyEvent=java.awt.event.KeyEvent[KEY_PRESSED,keyCode=59,keyText=;,keyChar='ö',keyLocation=KEY_LOCATION_STANDARD,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x10000d6] on canvas0)
Got keyEvent KeyEvent(nativeKeyEvent=java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='ö',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x10000d6] on canvas0)
Got keyEvent KeyEvent(nativeKeyEvent=java.awt.event.KeyEvent[KEY_RELEASED,keyCode=59,keyText=;,keyChar='ö',keyLocation=KEY_LOCATION_STANDARD,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x10000d6] on canvas0)
Got keyEvent KeyEvent(nativeKeyEvent=java.awt.event.KeyEvent[KEY_PRESSED,keyCode=59,keyText=;,keyChar=';',keyLocation=KEY_LOCATION_STANDARD,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x3b] on canvas0)
Got keyEvent KeyEvent(nativeKeyEvent=java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=';',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x3b] on canvas0)
Got keyEvent KeyEvent(nativeKeyEvent=java.awt.event.KeyEvent[KEY_RELEASED,keyCode=59,keyText=;,keyChar=';',keyLocation=KEY_LOCATION_STANDARD,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x3b] on canvas0)
Sebastian Lehrbaum
11/29/2023, 8:24 PMSamuel
10/27/2024, 4:52 PMit.nativeKeyEvent.action == ACTION_DOWN
(for iOS, desktop, Android, web)
Without that line it works but jumps immediately to next text input to next text input.