From 22d407c46a56231efc3d1192616d7923c9228bf1 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Sat, 3 Jun 2023 09:37:59 +0200 Subject: Per-layout shift modmap Specify the behavior of shift for a layout. This is intended for locales that use the same alphabet but have different capital letters (eg. Bengali). The modmap is defined like this: --- srcs/juloo.keyboard2/Keyboard2View.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'srcs/juloo.keyboard2/Keyboard2View.java') diff --git a/srcs/juloo.keyboard2/Keyboard2View.java b/srcs/juloo.keyboard2/Keyboard2View.java index cb93b3a..65098d0 100644 --- a/srcs/juloo.keyboard2/Keyboard2View.java +++ b/srcs/juloo.keyboard2/Keyboard2View.java @@ -123,6 +123,15 @@ public class Keyboard2View extends View public KeyValue modifyKey(KeyValue k, Pointers.Modifiers mods) { + if (_keyboard.modmap != null) + { + if (mods.has(KeyValue.Modifier.SHIFT)) + { + KeyValue km = _keyboard.modmap.shift.get(k); + if (km != null) + return km; + } + } return KeyModifier.modify(k, mods); } @@ -372,7 +381,7 @@ public class Keyboard2View extends View private void drawLabel(Canvas canvas, KeyValue kv, float x, float y, float keyH, boolean isKeyDown) { - kv = KeyModifier.modify(kv, _mods); + kv = modifyKey(kv, _mods); if (kv == null) return; float textSize = scaleTextSize(kv, _config.labelTextSize, keyH); @@ -388,7 +397,7 @@ public class Keyboard2View extends View { Paint.Align a = LABEL_POSITION_H[sub_index]; Vertical v = LABEL_POSITION_V[sub_index]; - kv = KeyModifier.modify(kv, _mods); + kv = modifyKey(kv, _mods); if (kv == null) return; float textSize = scaleTextSize(kv, _config.sublabelTextSize, keyH); -- cgit v1.2.3