Update x11 keypress upper code Fixed #243

This commit is contained in:
vcaesar 2019-12-19 13:12:29 -04:00
parent c86926da97
commit 36804105bc

View File

@ -173,6 +173,23 @@ void tapKeyCode(MMKeyCode code, MMKeyFlags flags){
toggleKeyCode(code, false, flags); toggleKeyCode(code, false, flags);
} }
#if defined(USE_X11)
bool toUpper(char c) {
if (isupper(c)) {
return true;
}
char *special = "~!@#$%^&*()_+";
while (*special) {
if (*special == c) {
return true;
}
special++;
}
return false;
}
#endif
void toggleKey(char c, const bool down, MMKeyFlags flags){ void toggleKey(char c, const bool down, MMKeyFlags flags){
MMKeyCode keyCode = keyCodeForChar(c); MMKeyCode keyCode = keyCodeForChar(c);
@ -181,9 +198,15 @@ void toggleKey(char c, const bool down, MMKeyFlags flags){
int modifiers; int modifiers;
#endif #endif
#if defined(USE_X11)
if (toUpper(c) && !(flags & MOD_SHIFT)) {
flags |= MOD_SHIFT; /* Not sure if this is safe for all layouts. */
}
#else
if (isupper(c) && !(flags & MOD_SHIFT)) { if (isupper(c) && !(flags & MOD_SHIFT)) {
flags |= MOD_SHIFT; /* Not sure if this is safe for all layouts. */ flags |= MOD_SHIFT; /* Not sure if this is safe for all layouts. */
} }
#endif
#if defined(IS_WINDOWS) #if defined(IS_WINDOWS)
modifiers = keyCode >> 8; // Pull out modifers. modifiers = keyCode >> 8; // Pull out modifers.
@ -192,6 +215,7 @@ void toggleKey(char c, const bool down, MMKeyFlags flags){
if ((modifiers & 4) != 0) flags |= MOD_ALT; if ((modifiers & 4) != 0) flags |= MOD_ALT;
keyCode = keyCode & 0xff; // Mask out modifiers. keyCode = keyCode & 0xff; // Mask out modifiers.
#endif #endif
toggleKeyCode(keyCode, down, flags); toggleKeyCode(keyCode, down, flags);
} }