From 0f41458d921e6fbcb0a6c4dec69589bc56898c93 Mon Sep 17 00:00:00 2001 From: Erich Hoover Date: Sat, 3 Mar 2007 18:43:11 -0700 Subject: wined3d: Update cursor position on ShowCursor --- dlls/wined3d/device.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 0ad2c47..f536dd2 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -5246,10 +5246,20 @@ static void WINAPI IWineD3DDeviceIm static BOOL WINAPI IWineD3DDeviceImpl_ShowCursor(IWineD3DDevice* iface, BOOL bShow) { IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface; BOOL oldVisible = This->bCursorVisible; + POINT pt; + TRACE("(%p) : visible(%d)\n", This, bShow); if(This->cursorTexture) This->bCursorVisible = bShow; + /* + * When ShowCursor is first called it should make the cursor appear at the OS's last + * known cursor position. Because of this, some applications just repetitively call + * ShowCursor in order to update the cursor's position. This behavior is undocumented. + */ + GetCursorPos(&pt); + This->xScreenSpace = pt.x; + This->yScreenSpace = pt.y; return oldVisible; } -- 1.4.1