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.
This commit is contained in:
Jules Aguillon 2024-02-12 23:36:32 +01:00
parent 63e7ac2e94
commit e9f734b6cc

View File

@ -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;