From 34a7a9285d562c3e5d04f2c6222d721c1cb7d3db Mon Sep 17 00:00:00 2001 From: minjaesong Date: Thu, 12 Sep 2024 23:56:40 +0900 Subject: [PATCH] better handling of null keysymbol --- src/net/torvald/terrarum/gamecontroller/IME.kt | 2 +- src/net/torvald/terrarum/gamecontroller/InputStrober.kt | 4 ++-- src/net/torvald/terrarum/modulebasegame/ui/UIIMEConfig.kt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/net/torvald/terrarum/gamecontroller/IME.kt b/src/net/torvald/terrarum/gamecontroller/IME.kt index e06fa5a4f..4c2e0619f 100644 --- a/src/net/torvald/terrarum/gamecontroller/IME.kt +++ b/src/net/torvald/terrarum/gamecontroller/IME.kt @@ -257,7 +257,7 @@ object IME { { headkey, shifted, alted, lowLayerKeysym -> val a = jsval.invokeMember("accept", headkey, shifted, alted, lowLayerKeysym) // println(a.getArrayElement(0).asString().map { it.code.toString(16) }) - a.getArrayElement(0).asString().toCanditates() to a.getArrayElement(1).asString() + a.getArrayElement(0).asString().toCanditates() to a.getArrayElement(1).let { if (it.isNull) "" else it.asString() } }, { jsval.invokeMember("backspace").asString().toCanditates() }, { diff --git a/src/net/torvald/terrarum/gamecontroller/InputStrober.kt b/src/net/torvald/terrarum/gamecontroller/InputStrober.kt index f20d42595..decfe425d 100644 --- a/src/net/torvald/terrarum/gamecontroller/InputStrober.kt +++ b/src/net/torvald/terrarum/gamecontroller/InputStrober.kt @@ -83,7 +83,7 @@ object InputStrober { if (!keyChanged) { // println("KEY_DOWN '$keysym' ($headKeyCode) $repeatCount") - App.inputStrobed(TerrarumKeyboardEvent(KEY_DOWN, keysym, headKeyCode, repeatCount, keybuf)) + App.inputStrobed(TerrarumKeyboardEvent(KEY_DOWN, keysym ?: "", headKeyCode, repeatCount, keybuf)) } else if (newKeysym != null) { // println("KEY_DOWC '$newKeysym' ($headKeyCode) $repeatCount") @@ -159,7 +159,7 @@ object InputStrober { data class TerrarumKeyboardEvent( val type: Int, - val character: String?, // representative key symbol + val character: String, // representative key symbol val headkey: Int, // representative keycode val repeatCount: Int, val keycodes: IntArray diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIIMEConfig.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIIMEConfig.kt index d57164203..2aac98f10 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIIMEConfig.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIIMEConfig.kt @@ -453,7 +453,7 @@ open private class UIItemInputKeycap( else if (parent.shiftin && keysym0[1]?.isNotEmpty() == true) keysym0[1] else keysym0[0]) ?: keysymLow - if (keysym.isEmpty()) { + if (keysym.isEmpty() || keysym.length == 8 && keysym.contains("null")) { return }