http://bugs.winehq.org/show_bug.cgi?id=18371
--- Comment #4 from Daniel Santos daniel.santos@pobox.com 2009-05-17 14:58:32 --- So it appears that my concern about not checking the handle type may indeed be valid. Upon further testing, I can still get the corrupted cursor, although I don't get an empty one any more. A call to X11DRV_SetCursor (I presume by pointer from ShowCursor) is made passing a handle with CURSORINFO that is 280x382 with zero bits per pixel!! Sounds screwy to me. Actually, it sounds like we took a handle, found out it was valid, got the memory address and cast it to a CURSORINFO struct, which it wasn't.
0017:trace:cursor:X11DRV_MotionNotify hwnd 0x20032, event->is_hint 0 0017:trace:cursor:SetCursor 0x115e 0017:trace:cursor:SetCursor 0x115e 0017:trace:cursor:ShowCursor 0, count=0 0017:trace:cursor:X11DRV_SetCursor NULL 0017:trace:cursor:X11DRV_MotionNotify hwnd 0x20032, event->is_hint 0 0017:trace:cursor:X11DRV_SetCursorPos warping to (1196,470) ... repeated ... 0017:trace:cursor:X11DRV_MotionNotify hwnd 0x20032, event->is_hint 0 0017:trace:cursor:X11DRV_SetCursorPos warping to (1334,568) 0017:trace:cursor:ShowCursor 1, count=-1 0017:trace:cursor:X11DRV_SetCursor 280x382, planes 0, bpp 0 0017:fixme:cursor:create_cursor_image Currently no support for cursors with 0 bits per pixel 0017:trace:global:GlobalUnlock16 115e 0017:trace:cursor:X11DRV_MotionNotify hwnd 0x20032, event->is_hint 0 0017:trace:cursor:SetCursor 0x115e