diff --git a/res/xml/azerty.xml b/res/xml/azerty.xml
index fb59638..5e130cf 100644
--- a/res/xml/azerty.xml
+++ b/res/xml/azerty.xml
@@ -22,7 +22,7 @@
-
+
@@ -36,7 +36,7 @@
-
+
diff --git a/res/xml/qwerty.xml b/res/xml/qwerty.xml
index c61c086..3e09088 100644
--- a/res/xml/qwerty.xml
+++ b/res/xml/qwerty.xml
@@ -21,7 +21,7 @@
-
+
@@ -36,7 +36,7 @@
-
+
diff --git a/srcs/juloo.keyboard2/KeyModifier.java b/srcs/juloo.keyboard2/KeyModifier.java
index 969cc88..ad129e8 100644
--- a/srcs/juloo.keyboard2/KeyModifier.java
+++ b/srcs/juloo.keyboard2/KeyModifier.java
@@ -63,25 +63,26 @@ class KeyModifier
{
if ((flags & KeyValue.FLAG_FN) == 0)
return null;
- switch (k.char_)
+ String name;
+ switch (k.name)
{
- case '1': return makeFnKey("F1", KeyEvent.KEYCODE_F1);
- case '2': return makeFnKey("F2", KeyEvent.KEYCODE_F2);
- case '3': return makeFnKey("F3", KeyEvent.KEYCODE_F3);
- case '4': return makeFnKey("F4", KeyEvent.KEYCODE_F4);
- case '5': return makeFnKey("F5", KeyEvent.KEYCODE_F5);
- case '6': return makeFnKey("F6", KeyEvent.KEYCODE_F6);
- case '7': return makeFnKey("F7", KeyEvent.KEYCODE_F7);
- case '8': return makeFnKey("F8", KeyEvent.KEYCODE_F8);
- case '9': return makeFnKey("F9", KeyEvent.KEYCODE_F9);
- case '0': return makeFnKey("F10", KeyEvent.KEYCODE_F10);
+ case "1": name = "f1"; break;
+ case "2": name = "f2"; break;
+ case "3": name = "f3"; break;
+ case "4": name = "f4"; break;
+ case "5": name = "f5"; break;
+ case "6": name = "f6"; break;
+ case "7": name = "f7"; break;
+ case "8": name = "f8"; break;
+ case "9": name = "f9"; break;
+ case "0": name = "f10"; break;
+ case "up": name = "page_up"; break;
+ case "down": name = "page_down"; break;
+ case "left": name = "home"; break;
+ case "right": name = "end"; break;
default: return null;
}
- }
-
- private static KeyValue makeFnKey(String symbol, int eventCode)
- {
- return new KeyValue(symbol, symbol, KeyValue.CHAR_NONE, eventCode, 0);
+ return KeyValue.getKeyByName(name);
}
/* Lookup the cache entry for a key. Create it needed. */
diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java
index a62ec07..94d65ec 100644
--- a/srcs/juloo.keyboard2/KeyValue.java
+++ b/srcs/juloo.keyboard2/KeyValue.java
@@ -86,6 +86,16 @@ class KeyValue
addKey(name, symbol, CHAR_NONE, event, FLAG_NOREPEAT);
}
+ private static void addEventKey(String name, String symbol, int event)
+ {
+ addEventKey(name, symbol, event, 0);
+ }
+
+ private static void addEventKey(String name, String symbol, int event, int flags)
+ {
+ addKey(name, symbol, CHAR_NONE, event, flags);
+ }
+
static
{
String chars = "<>&\"'(-_)=°+"
@@ -149,19 +159,29 @@ class KeyValue
addSpecialKey("switch_back_emoji", "ABC", EVENT_SWITCH_BACK_EMOJI);
addSpecialKey("change_method", "⊞", EVENT_CHANGE_METHOD);
- addKey("esc", "Esc", CHAR_NONE, KeyEvent.KEYCODE_ESCAPE, 0);
- addKey("enter", "\uE800", CHAR_NONE, KeyEvent.KEYCODE_ENTER, FLAG_KEY_FONT);
- addKey("up", "\uE80B", CHAR_NONE, KeyEvent.KEYCODE_DPAD_UP, FLAG_KEY_FONT);
- addKey("right", "\uE80C", CHAR_NONE, KeyEvent.KEYCODE_DPAD_RIGHT, FLAG_KEY_FONT);
- addKey("down", "\uE809", CHAR_NONE, KeyEvent.KEYCODE_DPAD_DOWN, FLAG_KEY_FONT);
- addKey("left", "\uE80A", CHAR_NONE, KeyEvent.KEYCODE_DPAD_LEFT, FLAG_KEY_FONT);
- addKey("page_up", "⇞", CHAR_NONE, KeyEvent.KEYCODE_PAGE_DOWN, 0);
- addKey("page_down", "⇟", CHAR_NONE, KeyEvent.KEYCODE_PAGE_UP, 0);
- addKey("home", "↖", CHAR_NONE, KeyEvent.KEYCODE_HOME, 0);
- addKey("end", "↗", CHAR_NONE, KeyEvent.KEYCODE_MOVE_END, 0);
- addKey("backspace", "⌫", CHAR_NONE, KeyEvent.KEYCODE_DEL, 0);
- addKey("delete", "⌦", CHAR_NONE, KeyEvent.KEYCODE_FORWARD_DEL, 0);
- addKey("insert", "Ins", CHAR_NONE, KeyEvent.KEYCODE_INSERT, 0);
+ addEventKey("esc", "Esc", KeyEvent.KEYCODE_ESCAPE);
+ addEventKey("enter", "\uE800", KeyEvent.KEYCODE_ENTER, FLAG_KEY_FONT);
+ addEventKey("up", "\uE80B", KeyEvent.KEYCODE_DPAD_UP, FLAG_KEY_FONT);
+ addEventKey("right", "\uE80C", KeyEvent.KEYCODE_DPAD_RIGHT, FLAG_KEY_FONT);
+ addEventKey("down", "\uE809", KeyEvent.KEYCODE_DPAD_DOWN, FLAG_KEY_FONT);
+ addEventKey("left", "\uE80A", KeyEvent.KEYCODE_DPAD_LEFT, FLAG_KEY_FONT);
+ addEventKey("page_up", "⇞", KeyEvent.KEYCODE_PAGE_DOWN);
+ addEventKey("page_down", "⇟", KeyEvent.KEYCODE_PAGE_UP);
+ addEventKey("home", "↖", KeyEvent.KEYCODE_HOME);
+ addEventKey("end", "↗", KeyEvent.KEYCODE_MOVE_END);
+ addEventKey("backspace", "⌫", KeyEvent.KEYCODE_DEL);
+ addEventKey("delete", "⌦", KeyEvent.KEYCODE_FORWARD_DEL);
+ addEventKey("insert", "Ins", KeyEvent.KEYCODE_INSERT);
+ addEventKey("f1", "F1", KeyEvent.KEYCODE_F1);
+ addEventKey("f2", "F2", KeyEvent.KEYCODE_F2);
+ addEventKey("f3", "F3", KeyEvent.KEYCODE_F3);
+ addEventKey("f4", "F4", KeyEvent.KEYCODE_F4);
+ addEventKey("f5", "F5", KeyEvent.KEYCODE_F5);
+ addEventKey("f6", "F6", KeyEvent.KEYCODE_F6);
+ addEventKey("f7", "F7", KeyEvent.KEYCODE_F7);
+ addEventKey("f8", "F8", KeyEvent.KEYCODE_F8);
+ addEventKey("f9", "F9", KeyEvent.KEYCODE_F9);
+ addEventKey("f10", "F10", KeyEvent.KEYCODE_F10);
addKey("tab", "↹", '\t', KeyEvent.KEYCODE_TAB, 0);
addKey("space", " ", ' ', KeyEvent.KEYCODE_SPACE, 0);