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:
@@ -399,6 +399,8 @@ WinNtGopThreadWindowProc (
|
||||
LPARAM Index;
|
||||
EFI_INPUT_KEY Key;
|
||||
BOOLEAN AltIsPress;
|
||||
INT32 PosX;
|
||||
INT32 PosY;
|
||||
|
||||
//
|
||||
// Use mTlsIndex global to get a Thread Local Storage version of Private.
|
||||
@@ -527,6 +529,45 @@ WinNtGopThreadWindowProc (
|
||||
WinNtGopConvertParamToEfiKeyShiftState (Private, &wParam, &lParam, FALSE);
|
||||
return 0;
|
||||
|
||||
case WM_MOUSEMOVE:
|
||||
PosX = GET_X_LPARAM (lParam);
|
||||
PosY = GET_Y_LPARAM (lParam);
|
||||
|
||||
if (Private->PointerPreviousX != PosX) {
|
||||
Private->PointerState.RelativeMovementX += (PosX - Private->PointerPreviousX);
|
||||
Private->PointerPreviousX = PosX;
|
||||
Private->PointerStateChanged = TRUE;
|
||||
}
|
||||
|
||||
if (Private->PointerPreviousY != PosY) {
|
||||
Private->PointerState.RelativeMovementY += (PosY - Private->PointerPreviousY);
|
||||
Private->PointerPreviousY = PosY;
|
||||
Private->PointerStateChanged = TRUE;
|
||||
}
|
||||
|
||||
Private->PointerState.RelativeMovementZ = 0;
|
||||
return 0;
|
||||
|
||||
case WM_LBUTTONDOWN:
|
||||
Private->PointerState.LeftButton = TRUE;
|
||||
Private->PointerStateChanged = TRUE;
|
||||
return 0;
|
||||
|
||||
case WM_LBUTTONUP:
|
||||
Private->PointerState.LeftButton = FALSE;
|
||||
Private->PointerStateChanged = TRUE;
|
||||
return 0;
|
||||
|
||||
case WM_RBUTTONDOWN:
|
||||
Private->PointerState.RightButton = TRUE;
|
||||
Private->PointerStateChanged = TRUE;
|
||||
return 0;
|
||||
|
||||
case WM_RBUTTONUP:
|
||||
Private->PointerState.RightButton = FALSE;
|
||||
Private->PointerStateChanged = TRUE;
|
||||
return 0;
|
||||
|
||||
case WM_CLOSE:
|
||||
//
|
||||
// This close message is issued by user, core is not aware of this,
|
||||
|
Reference in New Issue
Block a user