WinHost: Add SimplePointer support

Catch WM mouse events and expose them via the SimplePointer protocol.

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Andrew Fish <afish@apple.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Signed-off-by: Marvin Haeuser <mhaeuser@outlook.de>
This commit is contained in:
Marvin Haeuser
2019-09-24 20:46:14 +08:00
committed by Ray Ni
parent 2bbbdeeea2
commit 109197ee11
4 changed files with 69 additions and 3 deletions

View File

@ -409,9 +409,12 @@ WinNtWndCheckPointer (
Private = GRAPHICS_PRIVATE_DATA_FROM_THIS (GraphicsIo);
return EFI_NOT_READY;
}
if (!Private->PointerStateChanged) {
return EFI_NOT_READY;
}
return EFI_SUCCESS;
}
EFI_STATUS
EFIAPI
@ -424,5 +427,21 @@ WinNtWndGetPointerState (
Private = GRAPHICS_PRIVATE_DATA_FROM_THIS (GraphicsIo);
return EFI_NOT_READY;
if (!Private->PointerStateChanged) {
return EFI_NOT_READY;
}
State->RelativeMovementX = Private->PointerState.RelativeMovementX;
State->RelativeMovementY = Private->PointerState.RelativeMovementY;
State->RelativeMovementZ = Private->PointerState.RelativeMovementZ;
State->LeftButton = Private->PointerState.LeftButton;
State->RightButton = Private->PointerState.RightButton;
Private->PointerState.RelativeMovementX = 0;
Private->PointerState.RelativeMovementY = 0;
Private->PointerState.RelativeMovementZ = 0;
Private->PointerStateChanged = FALSE;
return EFI_SUCCESS;
}