... | ... |
@@ -16,21 +16,25 @@ WITH REGARD TO THIS SOFTWARE. |
16 | 16 |
void |
17 | 17 |
controller_down(Device *d, Uint8 mask) |
18 | 18 |
{ |
19 |
- d->dat[2] |= mask; |
|
20 |
- uxn_eval(d->u, d->vector); |
|
19 |
+ if(mask) { |
|
20 |
+ d->dat[2] |= mask; |
|
21 |
+ uxn_eval(d->u, d->vector); |
|
22 |
+ } |
|
21 | 23 |
} |
22 | 24 |
|
23 | 25 |
void |
24 | 26 |
controller_up(Device *d, Uint8 mask) |
25 | 27 |
{ |
26 |
- d->dat[2] &= (~mask); |
|
27 |
- uxn_eval(d->u, d->vector); |
|
28 |
+ if(mask) { |
|
29 |
+ d->dat[2] &= (~mask); |
|
30 |
+ uxn_eval(d->u, d->vector); |
|
31 |
+ } |
|
28 | 32 |
} |
29 | 33 |
|
30 | 34 |
void |
31 | 35 |
controller_key(Device *d, Uint8 key) |
32 | 36 |
{ |
33 |
- if(!key) { |
|
37 |
+ if(key) { |
|
34 | 38 |
d->dat[3] = key; |
35 | 39 |
uxn_eval(d->u, d->vector); |
36 | 40 |
d->dat[3] = 0x00; |
... | ... |
@@ -505,14 +505,17 @@ run(Uxn *u) |
505 | 505 |
clamp(event.motion.x - PAD, 0, ppu.width - 1), |
506 | 506 |
clamp(event.motion.y - PAD, 0, ppu.height - 1)); |
507 | 507 |
/* Controller */ |
508 |
- else if(event.type == SDL_KEYDOWN) { |
|
509 |
- controller_down(devctrl, get_button(&event)); |
|
510 |
- controller_key(devctrl, get_key(&event)); |
|
511 |
- do_shortcut(u, &event); |
|
508 |
+ else if(event.type == SDL_KEYDOWN || event.type == SDL_TEXTINPUT) { |
|
509 |
+ if(event.type == SDL_TEXTINPUT) |
|
510 |
+ controller_key(devctrl, event.text.text[0]); |
|
511 |
+ else if(get_key(&event)) |
|
512 |
+ controller_key(devctrl, get_key(&event)); |
|
513 |
+ else if(get_button(&event)) { |
|
514 |
+ controller_down(devctrl, get_button(&event)); |
|
515 |
+ do_shortcut(u, &event); |
|
516 |
+ } |
|
512 | 517 |
} else if(event.type == SDL_KEYUP) |
513 | 518 |
controller_up(devctrl, get_button(&event)); |
514 |
- else if(event.type == SDL_TEXTINPUT) |
|
515 |
- controller_key(devctrl, event.text.text[0]); |
|
516 | 519 |
else if(event.type == SDL_JOYBUTTONDOWN) |
517 | 520 |
controller_down(devctrl, get_button_joystick(&event)); |
518 | 521 |
else if(event.type == SDL_JOYBUTTONUP) |