mirror of
https://github.com/qemu/qemu.git
synced 2024-11-28 06:13:46 +08:00
Japanese keyboard fixes (kazu)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2129 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
f0e4217213
commit
60659e3b44
@ -97,6 +97,7 @@ Eisu_toggle 0x3a shift
|
||||
Execute 0x54 shift
|
||||
Kanji 0x70
|
||||
backslash 0x73
|
||||
yen 0x7d
|
||||
bar 0x7d shift
|
||||
underscore 0x73 shift
|
||||
Henkan_Mode 0x79
|
||||
|
30
sdl.c
30
sdl.c
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user