From 0b6c7a3df5f6784ad5f6889c62e87ed11e39ab71 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Tue, 2 Aug 2016 11:39:25 +0200 Subject: [PATCH] Fixed windows color cursor. --- client/Windows/wf_graphics.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/client/Windows/wf_graphics.c b/client/Windows/wf_graphics.c index f4ddbb5..d2476f1 100644 --- a/client/Windows/wf_graphics.c +++ b/client/Windows/wf_graphics.c @@ -193,9 +193,11 @@ static BOOL flip_bitmap(const BYTE* src, BYTE* dst, UINT32 scanline, UINT32 nHei src += scanline; bottomLine -= scanline; } + + return TRUE; } -static BOOL wf_Pointer_New(rdpContext* context, rdpPointer* pointer) +static BOOL wf_Pointer_New(rdpContext* context, const rdpPointer* pointer) { HCURSOR hCur; ICONINFO info; @@ -223,17 +225,18 @@ static BOOL wf_Pointer_New(rdpContext* context, rdpPointer* pointer) } else { + const UINT32 scanline = pointer->width * pointer->xorBpp / 8; BYTE* pdata = (BYTE*) _aligned_malloc(pointer->lengthAndMask, 16); flip_bitmap(pointer->andMaskData, pdata, (pointer->width + 7) / 8, pointer->height); info.hbmMask = CreateBitmap(pointer->width, pointer->height, 1, 1, pdata); _aligned_free(pdata); pdata = (BYTE*) _aligned_malloc(pointer->lengthXorMask, 16); - flip_bitmap(pointer->xorMaskData, pdata, (pointer->width + 7) / 8, pointer->height); + flip_bitmap(pointer->xorMaskData, pdata, scanline, pointer->height); info.hbmColor = CreateBitmap(pointer->width, pointer->height, 1, pointer->xorBpp, pdata); _aligned_free(pdata); } - hCur = CreateIconIndirect(&info); + hCur = CreateIconIndirect(&info); ((wfPointer*) pointer)->cursor = hCur; if (info.hbmMask) -- 2.7.4