]> git.proxmox.com Git - mirror_edk2.git/commitdiff
EmulatorPkg/Win: ReadKeyStrokeEx() always returns correct KeyState
authorRuiyu Ni <ruiyu.ni@intel.com>
Fri, 24 Aug 2018 03:47:25 +0000 (11:47 +0800)
committerRuiyu Ni <ruiyu.ni@intel.com>
Fri, 31 Aug 2018 02:40:11 +0000 (10:40 +0800)
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1118

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Hao Wu <hao.a.wu@intel.com>
Cc: Andrew Fish <afish@apple.com>
EmulatorPkg/Win/Host/WinGopInput.c

index 6c218ab98a1dbf0d34430eb1417becf3bb5ec8d3..17d35bb52cfe37b7154af4fef325daf9e3bc9dc7 100644 (file)
@@ -363,6 +363,23 @@ WinNtWndKeySetState (
   GRAPHICS_PRIVATE_DATA           *Private;\r
 \r
   Private = GRAPHICS_PRIVATE_DATA_FROM_THIS (GraphicsIo);\r
+  Private->ScrollLock = FALSE;\r
+  Private->NumLock = FALSE;\r
+  Private->CapsLock = FALSE;\r
+  Private->IsPartialKeySupport = FALSE;\r
+\r
+  if ((*KeyToggleState & EFI_SCROLL_LOCK_ACTIVE) == EFI_SCROLL_LOCK_ACTIVE) {\r
+    Private->ScrollLock = TRUE;\r
+  }\r
+  if ((*KeyToggleState & EFI_NUM_LOCK_ACTIVE) == EFI_NUM_LOCK_ACTIVE) {\r
+    Private->NumLock = TRUE;\r
+  }\r
+  if ((*KeyToggleState & EFI_CAPS_LOCK_ACTIVE) == EFI_CAPS_LOCK_ACTIVE) {\r
+    Private->CapsLock = TRUE;\r
+  }\r
+  if ((*KeyToggleState & EFI_KEY_STATE_EXPOSED) == EFI_KEY_STATE_EXPOSED) {\r
+    Private->IsPartialKeySupport = TRUE;\r
+  }\r
   Private->KeyState.KeyToggleState = *KeyToggleState;\r
   return EFI_SUCCESS;\r
 }\r