(svn r7170) -Fix: [sdl] Non-working console toggle for some keyboard layouts. Do not OR the backquote

character but set it. Happened on Linux with Hungarian keyboard for example.
pull/155/head
Darkvater 18 years ago
parent 17476d74a3
commit ea40411091

@ -272,21 +272,21 @@ static uint32 ConvertSdlKeyIntoMy(SDL_keysym *sym)
// check scancode for BACKQUOTE key, because we want the key left of "1", not anything else (on non-US keyboards)
#if defined(WIN32) || defined(__OS2__)
if (sym->scancode == 41) key |= WKC_BACKQUOTE;
if (sym->scancode == 41) key = WKC_BACKQUOTE;
#elif defined(__APPLE__)
if (sym->scancode == 10) key |= WKC_BACKQUOTE;
if (sym->scancode == 10) key = WKC_BACKQUOTE;
#elif defined(__MORPHOS__)
if (sym->scancode == 0) key |= WKC_BACKQUOTE; // yes, that key is code '0' under MorphOS :)
if (sym->scancode == 0) key = WKC_BACKQUOTE; // yes, that key is code '0' under MorphOS :)
#elif defined(__BEOS__)
if (sym->scancode == 17) key |= WKC_BACKQUOTE;
if (sym->scancode == 17) key = WKC_BACKQUOTE;
#elif defined(__SVR4) && defined(__sun)
if (sym->scancode == 60) key |= WKC_BACKQUOTE;
if (sym->scancode == 49) key |= WKC_BACKSPACE;
if (sym->scancode == 60) key = WKC_BACKQUOTE;
if (sym->scancode == 49) key = WKC_BACKSPACE;
#elif defined(__sgi__)
if (sym->scancode == 22) key |= WKC_BACKQUOTE;
if (sym->scancode == 22) key = WKC_BACKQUOTE;
#else
if (sym->scancode == 41) key |= WKC_BACKQUOTE; // Linux console
if (sym->scancode == 49) key |= WKC_BACKQUOTE;
if (sym->scancode == 41) key = WKC_BACKQUOTE; // Linux console
if (sym->scancode == 49) key = WKC_BACKQUOTE;
#endif
// META are the command keys on mac
@ -296,8 +296,8 @@ static uint32 ConvertSdlKeyIntoMy(SDL_keysym *sym)
if (sym->mod & KMOD_ALT) key |= WKC_ALT;
// these two lines really help porting hotkey combos. Uncomment to use -- Bjarni
#if 0
DEBUG(driver, 0) ("scancode character pressed %d", sym->scancode);
DEBUG(driver, 0) ("unicode character pressed %d", sym->unicode);
DEBUG(driver, 0) ("scancode character pressed %u", sym->scancode);
DEBUG(driver, 0) ("unicode character pressed %u", sym->unicode);
#endif
return (key << 16) + sym->unicode;
}

Loading…
Cancel
Save