...
|
...
|
@@ -189,11 +189,7 @@ doctrl(Uxn *u, SDL_Event *event, int z)
|
189
|
189
|
Uint8 flag = 0x00;
|
190
|
190
|
SDL_Keymod mods = SDL_GetModState();
|
191
|
191
|
devctrl->dat[2] &= 0xf8;
|
192
|
|
- if(mods & KMOD_CTRL) {
|
193
|
|
- devctrl->dat[2] |= 0x01;
|
194
|
|
- if(z && event->key.keysym.sym >= SDLK_a && event->key.keysym.sym <= SDLK_z)
|
195
|
|
- devctrl->dat[3] = event->key.keysym.sym & 0x1f;
|
196
|
|
- }
|
|
192
|
+ if(mods & KMOD_CTRL) devctrl->dat[2] |= 0x01;
|
197
|
193
|
if(mods & KMOD_ALT) devctrl->dat[2] |= 0x02;
|
198
|
194
|
if(mods & KMOD_SHIFT) devctrl->dat[2] |= 0x04;
|
199
|
195
|
/* clang-format off */
|
...
|
...
|
@@ -207,11 +203,14 @@ doctrl(Uxn *u, SDL_Event *event, int z)
|
207
|
203
|
case SDLK_F2: if(z) toggledebug(u); break;
|
208
|
204
|
case SDLK_F3: if(z) screencapture(); break;
|
209
|
205
|
}
|
|
206
|
+
|
210
|
207
|
/* clang-format on */
|
211
|
208
|
if(z) {
|
212
|
209
|
devctrl->dat[2] |= flag;
|
213
|
210
|
if(event->key.keysym.sym < 0x20 || event->key.keysym.sym == SDLK_DELETE)
|
214
|
211
|
devctrl->dat[3] = event->key.keysym.sym;
|
|
212
|
+ else if((mods & KMOD_CTRL) && event->key.keysym.sym >= SDLK_a && event->key.keysym.sym <= SDLK_z)
|
|
213
|
+ devctrl->dat[3] = event->key.keysym.sym - (mods & KMOD_SHIFT) * 0x20;
|
215
|
214
|
} else
|
216
|
215
|
devctrl->dat[2] &= ~flag;
|
217
|
216
|
}
|