Skip to content

Commit 167156a

Browse files
committed
WIP: US-International Keyboard Deadkeys
1 parent ed1fef4 commit 167156a

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed

core/input/keysym.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,42 @@
11
/* eslint-disable key-spacing */
22

33
export default {
4+
// TODO remove unused
5+
XK_dead_grave: 0xfe50, // `
6+
XK_dead_acute: 0xfe51, // ´
7+
XK_dead_circumflex: 0xfe52, // ^
8+
XK_dead_tilde: 0xfe53, // ~
9+
XK_dead_macron: 0xfe54,
10+
XK_dead_breve: 0xfe55,
11+
XK_dead_abovedot: 0xfe56,
12+
XK_dead_diaeresis: 0xfe57,
13+
XK_dead_abovering: 0xfe58,
14+
XK_dead_doubleacute: 0xfe59,
15+
XK_dead_caron: 0xfe5a,
16+
XK_dead_cedilla: 0xfe5b,
17+
XK_dead_ogonek: 0xfe5c,
18+
XK_dead_iota: 0xfe5d,
19+
XK_dead_voiced_sound: 0xfe5e,
20+
XK_dead_semivoiced_sound: 0xfe5f,
21+
XK_dead_belowdot: 0xfe60,
22+
XK_dead_hook: 0xfe61,
23+
XK_dead_horn: 0xfe62,
24+
XK_dead_stroke: 0xfe63,
25+
XK_dead_abovecomma: 0xfe64,
26+
XK_dead_psili: 0xfe64, /* non-deprecated alias for dead_abovecomma */
27+
XK_dead_abovereversedcomma: 0xfe65,
28+
XK_dead_dasia: 0xfe65, /* non-deprecated alias for dead_abovereversedcomma */
29+
XK_dead_doublegrave: 0xfe66,
30+
XK_dead_belowring: 0xfe67,
31+
XK_dead_belowmacron: 0xfe68,
32+
XK_dead_belowcircumflex: 0xfe69,
33+
XK_dead_belowtilde: 0xfe6a,
34+
XK_dead_belowbreve: 0xfe6b,
35+
XK_dead_belowdiaeresis: 0xfe6c,
36+
XK_dead_invertedbreve: 0xfe6d,
37+
XK_dead_belowcomma: 0xfe6e,
38+
XK_dead_currency: 0xfe6f,
39+
440
XK_VoidSymbol: 0xffffff, /* Void symbol */
541

642
XK_BackSpace: 0xff08, /* Back space, back char */

core/input/util.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,10 @@ export function getKeysym(evt) {
175175
return DOMKeyTable[key][location];
176176
}
177177

178+
if(key === "Dead" ){
179+
return getDeadKeysym(evt);
180+
}
181+
178182
// Now we need to look at the Unicode symbol instead
179183

180184
// Special key? (FIXME: Should have been caught earlier)
@@ -189,3 +193,29 @@ export function getKeysym(evt) {
189193

190194
return null;
191195
}
196+
197+
// TODO comment
198+
export function getDeadKeysym(evt) {
199+
switch(evt.code){
200+
case "Quote":
201+
if (evt.shiftKey){
202+
return KeyTable.XK_dead_diaeresis //
203+
} else {
204+
return KeyTable.XK_dead_acute // ´
205+
}
206+
case "Backquote":
207+
if (evt.shiftKey){
208+
return KeyTable.XK_dead_grave
209+
} else {
210+
return KeyTable.XK_dead_tilde
211+
}
212+
case 'Digit6':
213+
if (evt.shiftKey){
214+
return KeyTable.XK_dead_circumflex
215+
}
216+
217+
default:
218+
console.log(evt)
219+
return null
220+
}
221+
}

0 commit comments

Comments
 (0)