diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2006-08-19 14:27:31 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2006-08-19 14:27:31 +0000 |
commit | 60659e3b4488a6947a4ee2835f669b5d5463e34e (patch) | |
tree | bd8230acc848d58bf3e38586e94a3dcec8a667b8 /sdl.c | |
parent | f0e421721302eec09bb085a6b5002d040521b9b8 (diff) |
Japanese keyboard fixes (kazu)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2129 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'sdl.c')
-rw-r--r-- | sdl.c | 30 |
1 files changed, 26 insertions, 4 deletions
@@ -104,6 +104,10 @@ static uint8_t sdl_keyevent_to_keycode_generic(const SDL_KeyboardEvent *ev) keysym = ev->keysym.sym; if (keysym == 0 && ev->keysym.scancode == 113) keysym = SDLK_MODE; + /* For Japanese key '\' and '|' */ + if (keysym == 92 && ev->keysym.scancode == 133) { + keysym = 0xa5; + } return keysym2scancode(kbd_layout, keysym); } @@ -118,7 +122,7 @@ static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev) #else -static const uint8_t x_keycode_to_pc_keycode[61] = { +static const uint8_t x_keycode_to_pc_keycode[115] = { 0xc7, /* 97 Home */ 0xc8, /* 98 Up */ 0xc9, /* 99 PgUp */ @@ -142,10 +146,10 @@ static const uint8_t x_keycode_to_pc_keycode[61] = { 0x0, /* 117 */ 0x0, /* 118 */ 0x0, /* 119 */ - 0x70, /* 120 Hiragana_Katakana */ + 0x0, /* 120 */ 0x0, /* 121 */ 0x0, /* 122 */ - 0x73, /* 123 backslash */ + 0x0, /* 123 */ 0x0, /* 124 */ 0x0, /* 125 */ 0x0, /* 126 */ @@ -180,6 +184,24 @@ static const uint8_t x_keycode_to_pc_keycode[61] = { 0x51, /* 155 KP_PgDn */ 0x52, /* 156 KP_Ins */ 0x53, /* 157 KP_Del */ + 0x0, /* 158 */ + 0x0, /* 159 */ + 0x0, /* 160 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 170 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 180 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 190 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 200 */ + 0x0, /* 201 */ + 0x0, /* 202 */ + 0x0, /* 203 */ + 0x0, /* 204 */ + 0x0, /* 205 */ + 0x0, /* 206 */ + 0x0, /* 207 */ + 0x70, /* 208 Hiragana_Katakana */ + 0x0, /* 209 */ + 0x0, /* 210 */ + 0x73, /* 211 backslash */ }; static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev) @@ -192,7 +214,7 @@ static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev) keycode = 0; } else if (keycode < 97) { keycode -= 8; /* just an offset */ - } else if (keycode < 158) { + } else if (keycode < 212) { /* use conversion table */ keycode = x_keycode_to_pc_keycode[keycode - 97]; } else { |