diff options
| author | Jules Aguillon | 2024-02-12 23:36:32 +0100 |
|---|---|---|
| committer | Jules Aguillon | 2024-02-17 23:28:31 +0100 |
| commit | e9f734b6ccef1e827930aba8e9bf42acb4da1be2 (patch) | |
| tree | b68b2d2bfb89807e707f9433b6adbf124b3ce538 | |
| parent | 63e7ac2e94bf9adafd0af6bcc9b5a790428d1ad1 (diff) | |
| download | unexpected-keyboard-e9f734b6ccef1e827930aba8e9bf42acb4da1be2.tar.gz unexpected-keyboard-e9f734b6ccef1e827930aba8e9bf42acb4da1be2.zip | |
compose: Don't remove keys not in sequence
Keys that are not part of any possible sequences are now dimmed and
still usable instead of being removed, which felt weird.
| -rw-r--r-- | srcs/juloo.keyboard2/ComposeKey.java | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/srcs/juloo.keyboard2/ComposeKey.java b/srcs/juloo.keyboard2/ComposeKey.java index 173fcd7..4a8cff7 100644 --- a/srcs/juloo.keyboard2/ComposeKey.java +++ b/srcs/juloo.keyboard2/ComposeKey.java @@ -10,15 +10,22 @@ public final class ComposeKey { switch (kv.getKind()) { - case Char: return apply(state, kv.getChar()); + case Char: + KeyValue res = apply(state, kv.getChar()); + // Dim characters not part of any sequence instead of removing them. + if (res == null) + return kv.withFlags(kv.getFlags() | KeyValue.FLAG_SECONDARY); + return res; /* These keys must not be removed. */ - case Event: return kv; - case Modifier: return kv; + case Event: + case Modifier: + return kv; /* These keys cannot be part of sequences. */ - case String: return null; - case Keyevent: return null; - case Editing: return null; - case Placeholder: return null; + case String: + case Keyevent: + case Editing: + case Placeholder: + return kv.withFlags(kv.getFlags() | KeyValue.FLAG_SECONDARY); case Compose_pending: return null; } return null; |
