... | ... |
@@ -209,11 +209,12 @@ doctrl(Uxn *u, SDL_Event *event, int z) |
209 | 209 |
case SDLK_DOWN: flag = 0x20; break; |
210 | 210 |
case SDLK_LEFT: flag = 0x40; break; |
211 | 211 |
case SDLK_RIGHT: flag = 0x80; break; |
212 |
- case SDLK_DELETE: devctrl->dat[3] = z ? 0x7f : 0x00; break; |
|
213 | 212 |
} |
214 |
- if(z) |
|
213 |
+ if(z) { |
|
215 | 214 |
devctrl->dat[2] |= flag; |
216 |
- else |
|
215 |
+ if(event->key.keysym.sym < 0x20 || event->key.keysym.sym == SDLK_DELETE) |
|
216 |
+ devctrl->dat[3] = event->key.keysym.sym; |
|
217 |
+ } else |
|
217 | 218 |
devctrl->dat[2] &= ~flag; |
218 | 219 |
} |
219 | 220 |
|
... | ... |
@@ -360,7 +361,7 @@ start(Uxn *u) |
360 | 361 |
quit(); |
361 | 362 |
break; |
362 | 363 |
case SDL_TEXTINPUT: |
363 |
- devctrl->dat[3] = event.text.text[0]; |
|
364 |
+ devctrl->dat[3] = event.text.text[0]; /* fall-thru */ |
|
364 | 365 |
case SDL_KEYDOWN: |
365 | 366 |
case SDL_KEYUP: |
366 | 367 |
doctrl(u, &event, event.type == SDL_KEYDOWN); |