diff options
| author | Jules Aguillon | 2023-06-03 09:37:59 +0200 |
|---|---|---|
| committer | Jules Aguillon | 2023-06-03 09:37:59 +0200 |
| commit | 22d407c46a56231efc3d1192616d7923c9228bf1 (patch) | |
| tree | 7513d162d0e5152dba1547c7760275651069d0a2 /srcs/juloo.keyboard2/Keyboard2View.java | |
| parent | d2a92795e982151da66ca700168f4fbc946aa4b3 (diff) | |
| download | unexpected-keyboard-22d407c46a56231efc3d1192616d7923c9228bf1.tar.gz unexpected-keyboard-22d407c46a56231efc3d1192616d7923c9228bf1.zip | |
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:
<keyboard>
<modmap>
<shift a="a" b="A"/>
</modmap>
</keyboard>
Diffstat (limited to 'srcs/juloo.keyboard2/Keyboard2View.java')
| -rw-r--r-- | srcs/juloo.keyboard2/Keyboard2View.java | 13 |
1 files changed, 11 insertions, 2 deletions
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); |
