abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2
diff options
context:
space:
mode:
authorJules Aguillon2022-04-24 00:34:26 +0200
committerJules Aguillon2022-04-24 00:41:49 +0200
commitfec3f109c970901db31e1354b2cd3fc0015964e8 (patch)
treeff22978e363e3646319ec2a0c0178768e3913451 /srcs/juloo.keyboard2
parentf9f44fbd7d96b4883114b8eb08f660d6912e3df0 (diff)
downloadunexpected-keyboard-fec3f109c970901db31e1354b2cd3fc0015964e8.tar.gz
unexpected-keyboard-fec3f109c970901db31e1354b2cd3fc0015964e8.zip
Add support for Lithuanian
Requires two new diacritics: ogonek and dot_above. The new accents are also added to the Latvian layout as the two language can be close but not to the other localized layouts. A new mechanism is needed to reproducibly add extra keys to layouts without manual placement.
Diffstat (limited to 'srcs/juloo.keyboard2')
-rw-r--r--srcs/juloo.keyboard2/KeyModifier.java4
-rw-r--r--srcs/juloo.keyboard2/KeyValue.java6
2 files changed, 9 insertions, 1 deletions
diff --git a/srcs/juloo.keyboard2/KeyModifier.java b/srcs/juloo.keyboard2/KeyModifier.java
index 39fc5a7..73ec84e 100644
--- a/srcs/juloo.keyboard2/KeyModifier.java
+++ b/srcs/juloo.keyboard2/KeyModifier.java
@@ -76,6 +76,10 @@ class KeyModifier
return (char)KeyCharacterMap.getDeadChar('\u02DA', c);
case KeyValue.FLAG_ACCENT_MACRON:
return (char)KeyCharacterMap.getDeadChar('\u00AF', c);
+ case KeyValue.FLAG_ACCENT_OGONEK:
+ return (char)KeyCharacterMap.getDeadChar('\u02DB', c);
+ case KeyValue.FLAG_ACCENT_DOT_ABOVE:
+ return (char)KeyCharacterMap.getDeadChar('\u02D9', c);
case KeyValue.FLAG_ACCENT_ORDINAL:
switch (c)
{
diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java
index 3c7c305..12735ff 100644
--- a/srcs/juloo.keyboard2/KeyValue.java
+++ b/srcs/juloo.keyboard2/KeyValue.java
@@ -39,6 +39,7 @@ class KeyValue
public static final int FLAG_META = (1 << 14);
// Accent flags
+ public static final int FLAG_ACCENT_DOT_ABOVE = (1 << 15);
public static final int FLAG_ACCENT1 = (1 << 16); // Grave
public static final int FLAG_ACCENT2 = (1 << 17); // Aigu
public static final int FLAG_ACCENT3 = (1 << 18); // Circonflexe
@@ -53,12 +54,13 @@ class KeyValue
public static final int FLAG_ACCENT_ORDINAL = (1 << 28);
public static final int FLAG_ACCENT_ARROWS = (1 << 29);
public static final int FLAG_ACCENT_BOX = (1 << 30);
+ public static final int FLAG_ACCENT_OGONEK = (1 << 31);
public static final int FLAGS_ACCENTS = FLAG_ACCENT1 | FLAG_ACCENT2 |
FLAG_ACCENT3 | FLAG_ACCENT4 | FLAG_ACCENT5 | FLAG_ACCENT6 |
FLAG_ACCENT_CARON | FLAG_ACCENT_MACRON | FLAG_ACCENT_SUPERSCRIPT |
FLAG_ACCENT_SUBSCRIPT | FLAG_ACCENT_ORDINAL | FLAG_ACCENT_ARROWS |
- FLAG_ACCENT_BOX | FLAG_ACCENT_RING;
+ FLAG_ACCENT_BOX | FLAG_ACCENT_RING | FLAG_ACCENT_OGONEK | FLAG_ACCENT_DOT_ABOVE;
// Language specific keys that are removed from the keyboard by default
public static final int FLAG_LOCALIZED = (1 << 25);
@@ -169,6 +171,8 @@ class KeyValue
addModifierKey("accent_ring", "\u0056", FLAG_ACCENT_RING | FLAG_KEY_FONT | FLAG_LOCALIZED);
addModifierKey("accent_tilde", "\u0057", FLAG_ACCENT4 | FLAG_KEY_FONT | FLAG_LOCALIZED);
addModifierKey("accent_trema", "\u0058", FLAG_ACCENT6 | FLAG_KEY_FONT | FLAG_LOCALIZED);
+ addModifierKey("accent_ogonek", "\u0059", FLAG_ACCENT_OGONEK | FLAG_KEY_FONT | FLAG_LOCALIZED);
+ addModifierKey("accent_dot_above", "\u005a", FLAG_ACCENT_DOT_ABOVE | FLAG_KEY_FONT | FLAG_LOCALIZED);
addModifierKey("superscript", "Sup", FLAG_ACCENT_SUPERSCRIPT | FLAG_SMALLER_FONT);
addModifierKey("subscript", "Sub", FLAG_ACCENT_SUBSCRIPT | FLAG_SMALLER_FONT);
addModifierKey("ordinal", "Ord", FLAG_ACCENT_ORDINAL | FLAG_SMALLER_FONT);