diff --git a/app/streaming/input.cpp b/app/streaming/input.cpp index 5ad0ecd6..0859fe1b 100644 --- a/app/streaming/input.cpp +++ b/app/streaming/input.cpp @@ -321,6 +321,9 @@ void SdlInputHandler::handleKeyEvent(SDL_KeyboardEvent* event) if (event->keysym.mod & KMOD_SHIFT) { modifiers |= MODIFIER_SHIFT; } + if (event->keysym.mod & KMOD_GUI) { + modifiers |= MODIFIER_META; + } // Set keycode. We explicitly use scancode here because GFE will try to correct // for AZERTY layouts on the host but it depends on receiving VK_ values matching @@ -461,6 +464,16 @@ void SdlInputHandler::handleKeyEvent(SDL_KeyboardEvent* event) case SDL_SCANCODE_RALT: keyCode = 0xA5; break; + // Until we can fully capture these on Windows, we should avoid + // passing them through to the host. + #ifndef Q_OS_WIN + case SDL_SCANCODE_LGUI: + keyCode = 0x5B; + break; + case SDL_SCANCODE_RGUI: + keyCode = 0x5C; + break; + #endif case SDL_SCANCODE_AC_BACK: keyCode = 0xA6; break; diff --git a/moonlight-common-c/moonlight-common-c b/moonlight-common-c/moonlight-common-c index e60a7ef7..cfeb0ffd 160000 --- a/moonlight-common-c/moonlight-common-c +++ b/moonlight-common-c/moonlight-common-c @@ -1 +1 @@ -Subproject commit e60a7ef75f02559e7c5271f4e08f815af5f4a8cc +Subproject commit cfeb0ffd90992ee0fa4b6b4a179652e3e2786873