X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EmulatorPkg%2FWin%2FHost%2FWinGopInput.c;h=312a549847c5f303f03d0ec3ac73a88cbdaadf1f;hp=0e8d11fc57ac31825569e4fbaf6caaa182727061;hb=109197ee116b80f70acafe91e36e7172efcb9c6c;hpb=e3ba31da1cd1c4ab924f7f9787247cb6679bcffe diff --git a/EmulatorPkg/Win/Host/WinGopInput.c b/EmulatorPkg/Win/Host/WinGopInput.c index 0e8d11fc57..312a549847 100644 --- a/EmulatorPkg/Win/Host/WinGopInput.c +++ b/EmulatorPkg/Win/Host/WinGopInput.c @@ -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; }