From 5f8ed528ab1ecd173bc67903bd9e8891ac917db5 Mon Sep 17 00:00:00 2001 From: Helium314 Date: Sat, 16 Sep 2023 10:46:20 +0200 Subject: [PATCH] fix hangul combiner being used for symbols input --- .../org/dslul/openboard/inputmethod/event/CombinerChain.kt | 1 + .../openboard/inputmethod/latin/common/StringUtils.java | 2 -- .../openboard/inputmethod/latin/inputlogic/InputLogic.java | 5 ++++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/event/CombinerChain.kt b/app/src/main/java/org/dslul/openboard/inputmethod/event/CombinerChain.kt index 6cd5df09d..687e57ec5 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/event/CombinerChain.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/event/CombinerChain.kt @@ -27,6 +27,7 @@ class CombinerChain(initialText: String) { // so we need to remove the combiner when not writing in hangul script. // Maybe it would be better to always have the Hangul combiner, but make sure it doesn't affect // events for other scripts, but how? + // todo: this really should be done properly, hangul combiner should do nothing when it's not needed var isHangul = false set(value) { if (field == value) return diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/common/StringUtils.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/common/StringUtils.java index 0ca9080c5..b90a7a930 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/common/StringUtils.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/common/StringUtils.java @@ -16,8 +16,6 @@ package org.dslul.openboard.inputmethod.latin.common; -import android.renderscript.Script; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/inputlogic/InputLogic.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/inputlogic/InputLogic.java index 747415434..1f22aedbd 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/inputlogic/InputLogic.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/inputlogic/InputLogic.java @@ -448,7 +448,10 @@ public final class InputLogic { mWordBeingCorrectedByCursor = null; mJustRevertedACommit = false; final Event processedEvent; - if (currentKeyboardScriptId == ScriptUtils.SCRIPT_HANGUL) { + if (currentKeyboardScriptId == ScriptUtils.SCRIPT_HANGUL + // only use the Hangul chain if codepoint may actually be Hangul + // todo: this whole hangul-related logic should probably be somewhere else + && event.getMCodePoint() >= 0x1100) { mWordComposer.setHangul(true); final Event hangulDecodedEvent = HangulEventDecoder.decodeSoftwareKeyEvent(event); processedEvent = mWordComposer.processEvent(hangulDecodedEvent);