Commit 60659e3b4488a6947a4ee2835f669b5d5463e34e
1 parent
f0e42172
Japanese keyboard fixes (kazu)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2129 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
27 additions
and
4 deletions
keymaps/ja
sdl.c
... | ... | @@ -104,6 +104,10 @@ static uint8_t sdl_keyevent_to_keycode_generic(const SDL_KeyboardEvent *ev) |
104 | 104 | keysym = ev->keysym.sym; |
105 | 105 | if (keysym == 0 && ev->keysym.scancode == 113) |
106 | 106 | keysym = SDLK_MODE; |
107 | + /* For Japanese key '\' and '|' */ | |
108 | + if (keysym == 92 && ev->keysym.scancode == 133) { | |
109 | + keysym = 0xa5; | |
110 | + } | |
107 | 111 | return keysym2scancode(kbd_layout, keysym); |
108 | 112 | } |
109 | 113 | |
... | ... | @@ -118,7 +122,7 @@ static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev) |
118 | 122 | |
119 | 123 | #else |
120 | 124 | |
121 | -static const uint8_t x_keycode_to_pc_keycode[61] = { | |
125 | +static const uint8_t x_keycode_to_pc_keycode[115] = { | |
122 | 126 | 0xc7, /* 97 Home */ |
123 | 127 | 0xc8, /* 98 Up */ |
124 | 128 | 0xc9, /* 99 PgUp */ |
... | ... | @@ -142,10 +146,10 @@ static const uint8_t x_keycode_to_pc_keycode[61] = { |
142 | 146 | 0x0, /* 117 */ |
143 | 147 | 0x0, /* 118 */ |
144 | 148 | 0x0, /* 119 */ |
145 | - 0x70, /* 120 Hiragana_Katakana */ | |
149 | + 0x0, /* 120 */ | |
146 | 150 | 0x0, /* 121 */ |
147 | 151 | 0x0, /* 122 */ |
148 | - 0x73, /* 123 backslash */ | |
152 | + 0x0, /* 123 */ | |
149 | 153 | 0x0, /* 124 */ |
150 | 154 | 0x0, /* 125 */ |
151 | 155 | 0x0, /* 126 */ |
... | ... | @@ -180,6 +184,24 @@ static const uint8_t x_keycode_to_pc_keycode[61] = { |
180 | 184 | 0x51, /* 155 KP_PgDn */ |
181 | 185 | 0x52, /* 156 KP_Ins */ |
182 | 186 | 0x53, /* 157 KP_Del */ |
187 | + 0x0, /* 158 */ | |
188 | + 0x0, /* 159 */ | |
189 | + 0x0, /* 160 */ | |
190 | + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 170 */ | |
191 | + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 180 */ | |
192 | + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 190 */ | |
193 | + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 200 */ | |
194 | + 0x0, /* 201 */ | |
195 | + 0x0, /* 202 */ | |
196 | + 0x0, /* 203 */ | |
197 | + 0x0, /* 204 */ | |
198 | + 0x0, /* 205 */ | |
199 | + 0x0, /* 206 */ | |
200 | + 0x0, /* 207 */ | |
201 | + 0x70, /* 208 Hiragana_Katakana */ | |
202 | + 0x0, /* 209 */ | |
203 | + 0x0, /* 210 */ | |
204 | + 0x73, /* 211 backslash */ | |
183 | 205 | }; |
184 | 206 | |
185 | 207 | 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) |
192 | 214 | keycode = 0; |
193 | 215 | } else if (keycode < 97) { |
194 | 216 | keycode -= 8; /* just an offset */ |
195 | - } else if (keycode < 158) { | |
217 | + } else if (keycode < 212) { | |
196 | 218 | /* use conversion table */ |
197 | 219 | keycode = x_keycode_to_pc_keycode[keycode - 97]; |
198 | 220 | } else { | ... | ... |