Skip to content

Commit 83c2f74

Browse files
committed
fix: Incorrectly consume keyEvent
Throw Out `KeyEvent` to OS if input window is hidden. Fixes #803
1 parent 21dbff3 commit 83c2f74

File tree

1 file changed

+12
-2
lines changed
  • app/src/main/java/com/osfans/trime/ime/core

1 file changed

+12
-2
lines changed

app/src/main/java/com/osfans/trime/ime/core/Trime.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -966,7 +966,13 @@ private boolean composeEvent(@NonNull KeyEvent event) {
966966
@Override
967967
public boolean onKeyDown(int keyCode, KeyEvent event) {
968968
Timber.i("\t<TrimeInput>\tonKeyDown()\tkeycode=%d, event=%s", keyCode, event.toString());
969-
if (composeEvent(event) && onKeyEvent(event)) return true;
969+
if (composeEvent(event) && onKeyEvent(event)) {
970+
if (!isWindowShown) {
971+
return super.onKeyDown(keyCode, event);
972+
} else {
973+
return true;
974+
}
975+
}
970976
return super.onKeyDown(keyCode, event);
971977
}
972978

@@ -975,7 +981,11 @@ public boolean onKeyUp(int keyCode, KeyEvent event) {
975981
Timber.i("\t<TrimeInput>\tonKeyUp()\tkeycode=%d, event=%s", keyCode, event.toString());
976982
if (composeEvent(event) && textInputManager.getNeedSendUpRimeKey()) {
977983
textInputManager.onRelease(keyCode);
978-
return true;
984+
if (!isWindowShown) {
985+
return super.onKeyUp(keyCode, event);
986+
} else {
987+
return true;
988+
}
979989
}
980990
return super.onKeyUp(keyCode, event);
981991
}

0 commit comments

Comments
 (0)