diff options
author | RĂ©mi Bernon <rbernon@codeweavers.com> | 2021-01-14 14:54:31 +0300 |
---|---|---|
committer | Andrew Eikum <aeikum@codeweavers.com> | 2021-01-14 19:11:07 +0300 |
commit | 42e1584e719596ac4b46fcc6d0fd8f3872aab0e1 (patch) | |
tree | 5c6368bdfaa8399c64808a8d2b558821848e3334 | |
parent | d72f1ef9304bd3eb65b5a0df84ae99ef9bf44b1a (diff) |
steamclient: Fake Shift + Tab key release on overlay activation.proton-5.13-5
-rw-r--r-- | lsteamclient/steamclient_main.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lsteamclient/steamclient_main.c b/lsteamclient/steamclient_main.c index 0ca40aa6..c4df70fe 100644 --- a/lsteamclient/steamclient_main.c +++ b/lsteamclient/steamclient_main.c @@ -8,6 +8,7 @@ #include "windef.h" #include "winbase.h" #include "winnls.h" +#include "winuser.h" #include "wine/debug.h" #include "wine/library.h" #include "wine/list.h" @@ -564,7 +565,13 @@ bool CDECL Steam_BGetCallback(HSteamPipe pipe, struct winCallbackMsg_t *win_msg, { uint8 activated = *(uint8 *)lin_msg.m_pubParam; TRACE("steam overlay %sactivated, %sabling all X11 events.\n", activated ? "" : "de", activated ? "dis" : "en"); - if (activated) SetEvent(steam_overlay_event); + if (activated) + { + SetEvent(steam_overlay_event); + keybd_event(VK_LSHIFT, 0x2a /* lshift scancode */, KEYEVENTF_KEYUP, 0); + keybd_event(VK_RSHIFT, 0x36 /* rshift scancode */, KEYEVENTF_KEYUP, 0); + keybd_event(VK_TAB, 0x0f /* tab scancode */, KEYEVENTF_KEYUP, 0); + } else ResetEvent(steam_overlay_event); } |