abouttreesummaryrefslogcommitdiff
diff options
context:
space:
mode:
authorJules Aguillon2021-04-19 22:29:20 +0200
committerJules Aguillon2021-04-19 22:29:20 +0200
commit2200e2f3136bf8b2446567abc29efebdfd8fa9c2 (patch)
treedc6367f683b156cb18c02cec787a9a99aa70ff9e
parent471375d50c10a9a9bf60c3e9b3ebb509d56b5e2c (diff)
downloadunexpected-keyboard-2200e2f3136bf8b2446567abc29efebdfd8fa9c2.tar.gz
unexpected-keyboard-2200e2f3136bf8b2446567abc29efebdfd8fa9c2.zip
Move some keys under the Fn modifier and move it on the bottom row
-rw-r--r--res/xml/azerty.xml4
-rw-r--r--res/xml/qwerty.xml4
-rw-r--r--srcs/juloo.keyboard2/KeyModifier.java33
-rw-r--r--srcs/juloo.keyboard2/KeyValue.java46
4 files changed, 54 insertions, 33 deletions
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 @@
<key key0="j" key2="accent6" key3="^" />
<key key0="k" key2="£" key3="$" key4="accent3" />
<key key0="l" key1="accent4" key2="%" />
- <key key0="m" key1="fn" key2="µ" key4="*" />
+ <key key0="m" key2="µ" key4="*" />
</row>
<row>
<key width="2.0" key0="shift" />
@@ -36,7 +36,7 @@
</row>
<row>
<key width="1.8" key0="ctrl" key3="switch_numeric" />
- <key width="1.2" key0="alt" key1="page_up" key2="end" key3="home" key4="page_down" />
+ <key width="1.2" key0="alt" key1="fn" />
<key width="4.0" key0="space" />
<key width="1.2" key0="switch_emoji" key1="up" key2="right" key3="left" key4="down" />
<key width="1.8" key0="enter" />
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 @@
<key key0="h" key2="=" key3="+" />
<key key0="j" key4="}" key3="{" />
<key key0="k" key4="]" key3="[" />
- <key key0="l" key1="fn" key2="|" key3="\\" />
+ <key key0="l" key2="|" key3="\\" />
</row>
<row>
<key width="1.5" key0="shift" />
@@ -36,7 +36,7 @@
</row>
<row>
<key width="1.8" key0="ctrl" key1="change_method" key3="switch_numeric" />
- <key width="1.2" key0="alt" key1="page_up" key2="end" key3="home" key4="page_down" />
+ <key width="1.2" key0="alt" key1="fn" />
<key width="4.0" key0="space" />
<key width="1.2" key0="switch_emoji" key1="up" key2="right" key3="left" key4="down" />
<key width="1.8" key0="enter" />
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);