[idd] the cursor pos is only valid if it's visible

This commit is contained in:
Geoffrey McRae 2023-04-14 21:40:21 +10:00
parent bbd0c7a99b
commit 9759b5aa8f

View file

@ -466,16 +466,18 @@ void CIndirectDeviceContext::SendCursor(const IDARG_OUT_QUERY_HWCURSOR& info, co
} }
KVMFRCursor * cursor = (KVMFRCursor *)lgmpHostMemPtr(mem); KVMFRCursor * cursor = (KVMFRCursor *)lgmpHostMemPtr(mem);
m_cursorVisible = info.IsCursorVisible; m_cursorVisible = info.IsCursorVisible;
m_cursorX = info.X; uint32_t flags = 0;
m_cursorY = info.Y;
cursor->x = (int16_t)info.X; if (info.IsCursorVisible)
cursor->y = (int16_t)info.Y; {
m_cursorX = info.X;
uint32_t flags = CURSOR_FLAG_POSITION | m_cursorY = info.Y;
(info.IsCursorVisible ? CURSOR_FLAG_VISIBLE : 0); cursor->x = (int16_t)info.X;
cursor->y = (int16_t)info.Y;
flags |= CURSOR_FLAG_POSITION | CURSOR_FLAG_VISIBLE;
}
if (info.CursorShapeInfo.CursorType != IDDCX_CURSOR_SHAPE_TYPE_UNINITIALIZED) if (info.CursorShapeInfo.CursorType != IDDCX_CURSOR_SHAPE_TYPE_UNINITIALIZED)
{ {