mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2025-07-01 07:15:27 +00:00
Fix INTERNATIONAL keys wouldn't work properly
since those keys aren't exist in US keyboard, we shouldn't treat (and convert) as a US keyboard keycodes (on Sunshine).
This commit is contained in:
parent
9491884cb4
commit
fabb4fdadc
@ -148,6 +148,7 @@ void SdlInputHandler::handleKeyEvent(SDL_KeyboardEvent* event)
|
|||||||
{
|
{
|
||||||
short keyCode;
|
short keyCode;
|
||||||
char modifiers;
|
char modifiers;
|
||||||
|
bool shouldNotConvertToScanCodeOnServer = false;
|
||||||
|
|
||||||
if (event->repeat) {
|
if (event->repeat) {
|
||||||
// Ignore repeat key down events
|
// Ignore repeat key down events
|
||||||
@ -402,8 +403,9 @@ void SdlInputHandler::handleKeyEvent(SDL_KeyboardEvent* event)
|
|||||||
case SDL_SCANCODE_LEFTBRACKET:
|
case SDL_SCANCODE_LEFTBRACKET:
|
||||||
keyCode = 0xDB;
|
keyCode = 0xDB;
|
||||||
break;
|
break;
|
||||||
case SDL_SCANCODE_BACKSLASH:
|
|
||||||
case SDL_SCANCODE_INTERNATIONAL3:
|
case SDL_SCANCODE_INTERNATIONAL3:
|
||||||
|
shouldNotConvertToScanCodeOnServer = true;
|
||||||
|
case SDL_SCANCODE_BACKSLASH:
|
||||||
keyCode = 0xDC;
|
keyCode = 0xDC;
|
||||||
break;
|
break;
|
||||||
case SDL_SCANCODE_RIGHTBRACKET:
|
case SDL_SCANCODE_RIGHTBRACKET:
|
||||||
@ -412,8 +414,9 @@ void SdlInputHandler::handleKeyEvent(SDL_KeyboardEvent* event)
|
|||||||
case SDL_SCANCODE_APOSTROPHE:
|
case SDL_SCANCODE_APOSTROPHE:
|
||||||
keyCode = 0xDE;
|
keyCode = 0xDE;
|
||||||
break;
|
break;
|
||||||
case SDL_SCANCODE_NONUSBACKSLASH:
|
|
||||||
case SDL_SCANCODE_INTERNATIONAL1:
|
case SDL_SCANCODE_INTERNATIONAL1:
|
||||||
|
shouldNotConvertToScanCodeOnServer = true;
|
||||||
|
case SDL_SCANCODE_NONUSBACKSLASH:
|
||||||
keyCode = 0xE2;
|
keyCode = 0xE2;
|
||||||
break;
|
break;
|
||||||
case SDL_SCANCODE_LANG1:
|
case SDL_SCANCODE_LANG1:
|
||||||
@ -438,8 +441,9 @@ void SdlInputHandler::handleKeyEvent(SDL_KeyboardEvent* event)
|
|||||||
m_KeysDown.remove(keyCode);
|
m_KeysDown.remove(keyCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
LiSendKeyboardEvent(0x8000 | keyCode,
|
LiSendKeyboardEvent2(0x8000 | keyCode,
|
||||||
event->state == SDL_PRESSED ?
|
event->state == SDL_PRESSED ?
|
||||||
KEY_ACTION_DOWN : KEY_ACTION_UP,
|
KEY_ACTION_DOWN : KEY_ACTION_UP,
|
||||||
modifiers);
|
modifiers,
|
||||||
|
shouldNotConvertToScanCodeOnServer ? SS_KBE_FLAG_NON_NORMALIZED : 0);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user