liballegro/patches/060-fix-keyboard-drv.patch |
1 | 1 | Index: allegro-4.4.2/src/linux/lkeybd.c |
2 | 2 | =================================================================== |
3 | | +++ allegro-4.4.2/src/linux/lkeybd.c 2011-06-16 20:27:40.000000000 +0200 |
| 3 | --- allegro-4.4.2.orig/src/linux/lkeybd.c 2011-06-19 11:32:20.000000000 +0200 |
4 | 4 | @@ -143,7 +143,10 @@ |
5 | 5 | /* convert Allegro format scancodes into key_shifts flag bits */ |
6 | 6 | static unsigned short modifier_table[__allegro_KEY_MAX - __allegro_KEY_MODIFIERS] = |
... | ... | |
14 | 14 | __allegro_KB_CTRL_FLAG, __allegro_KB_ALT_FLAG, __allegro_KB_ALT_FLAG, |
15 | 15 | __allegro_KB_LWIN_FLAG, __allegro_KB_RWIN_FLAG, __allegro_KB_MENU_FLAG, |
16 | 16 | __allegro_KB_SCROLOCK_FLAG, __allegro_KB_NUMLOCK_FLAG, __allegro_KB_CAPSLOCK_FLAG |
17 | | @@ -204,9 +207,13 @@ |
| 17 | @@ -204,7 +207,10 @@ |
18 | 18 | map = 0; |
19 | 19 | if (key[__allegro_KEY_LSHIFT] || key[__allegro_KEY_RSHIFT]) map |= 1; |
20 | 20 | if (key[__allegro_KEY_ALTGR]) map |= 2; |
21 | 21 | - if (key[__allegro_KEY_LCONTROL] || key[__allegro_KEY_RCONTROL]) map |= 4; |
22 | | + /* if (key[__allegro_KEY_LCONTROL] || key[__allegro_KEY_RCONTROL]) map |= 4; */ |
| 22 | + |
| 23 | + /* fixes for nanonote's keyboard: LCONTROL is 'Fn' modifier */ |
| 24 | + if (key[__allegro_KEY_LCONTROL]) map |= (1<<6); |
| 25 | + if (key[__allegro_KEY_RCONTROL]) map |= 4; |
23 | 26 | if (key[__allegro_KEY_ALT]) map |= 8; |
24 | 27 | |
25 | | + /* fixes for nanonote's keyboard */ |
26 | | + if (key[__allegro_KEY_LCONTROL]) map |= (1<<6); |
27 | | + if (key[__allegro_KEY_RCONTROL]) map |= (1<<7); |
28 | | + |
29 | 28 | /* Map scancode to type and value */ |
30 | | kbe.kb_table = map; |
31 | | kbe.kb_index = code; |