Przeglądaj źródła

Fix WM_SYSKEYDOWN not being trapped by IME message handling

This would cause Alt + <something> not being trapped if handled by the system IME.
Susko3 3 miesięcy temu
rodzic
commit
2ef005afe5
1 zmienionych plików z 8 dodań i 0 usunięć
  1. 8 0
      src/video/windows/SDL_windowskeyboard.c

+ 8 - 0
src/video/windows/SDL_windowskeyboard.c

@@ -1087,6 +1087,14 @@ bool WIN_HandleIMEMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM *lParam, SD
             SDL_DebugIMELog("WM_KEYDOWN normal");
             SDL_DebugIMELog("WM_KEYDOWN normal");
         }
         }
         break;
         break;
+    case WM_SYSKEYDOWN:
+        if (wParam == VK_PROCESSKEY) {
+            SDL_DebugIMELog("WM_SYSKEYDOWN VK_PROCESSKEY");
+            trap = true;
+        } else {
+            SDL_DebugIMELog("WM_SYSKEYDOWN normal");
+        }
+        break;
     case WM_INPUTLANGCHANGE:
     case WM_INPUTLANGCHANGE:
         SDL_DebugIMELog("WM_INPUTLANGCHANGE");
         SDL_DebugIMELog("WM_INPUTLANGCHANGE");
         IME_InputLangChanged(videodata);
         IME_InputLangChanged(videodata);