[c-host] dxgi: dont send null movements when only the visibility changed

This commit is contained in:
Geoffrey McRae 2020-02-12 18:40:28 +11:00
parent e2adbaa5c1
commit 582ed6b5d1
2 changed files with 16 additions and 17 deletions

View File

@ -1 +1 @@
B1-156-g4acf800ace+1 B1-157-ge2adbaa5c1+1

View File

@ -706,24 +706,23 @@ static CaptureResult dxgi_capture()
if (frameInfo.LastMouseUpdateTime.QuadPart) if (frameInfo.LastMouseUpdateTime.QuadPart)
{ {
if ( /* the pointer position is only valid if the pointer is visible */
frameInfo.PointerPosition.Position.x != this->lastPointerX || if (frameInfo.PointerPosition.Visible &&
frameInfo.PointerPosition.Position.y != this->lastPointerY || (frameInfo.PointerPosition.Position.x != this->lastPointerX ||
frameInfo.PointerPosition.Visible != this->lastPointerVisible frameInfo.PointerPosition.Position.y != this->lastPointerY))
)
{ {
/* the pointer position is invalid if the pointer is not visible */ pointer.positionUpdate = true;
if (frameInfo.PointerPosition.Visible) pointer.x =
{ this->lastPointerX =
pointer.positionUpdate = true; frameInfo.PointerPosition.Position.x;
pointer.x = pointer.y =
this->lastPointerX = this->lastPointerY =
frameInfo.PointerPosition.Position.x; frameInfo.PointerPosition.Position.y;
pointer.y = postPointer = true;
this->lastPointerY = }
frameInfo.PointerPosition.Position.y;
}
if (this->lastPointerVisible != frameInfo.PointerPosition.Visible)
{
this->lastPointerVisible = frameInfo.PointerPosition.Visible; this->lastPointerVisible = frameInfo.PointerPosition.Visible;
postPointer = true; postPointer = true;
} }