Module: wine Branch: master Commit: 8578f9c37579ea8b9856aa1838244afe44ba0996 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8578f9c37579ea8b9856aa1838...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Apr 26 12:26:16 2011 +0200
dinput: Get rid of some redundant coordinate mappings.
---
dlls/dinput/mouse.c | 20 ++++---------------- 1 files changed, 4 insertions(+), 16 deletions(-)
diff --git a/dlls/dinput/mouse.c b/dlls/dinput/mouse.c index ace9fe2..9434888 100644 --- a/dlls/dinput/mouse.c +++ b/dlls/dinput/mouse.c @@ -66,7 +66,6 @@ struct SysMouseImpl /* These are used in case of relative -> absolute transitions */ POINT org_coords; POINT mapped_center; - DWORD win_centerX, win_centerY; /* warping: whether we need to move mouse back to middle once we * reach window borders (for e.g. shooters, "surface movement" games) */ BOOL need_warp; @@ -419,20 +418,12 @@ static int dinput_mouse_hook( LPDIRECTINPUTDEVICE8A iface, WPARAM wparam, LPARAM
static BOOL dinput_window_check(SysMouseImpl* This) { RECT rect; - DWORD centerX, centerY;
/* make sure the window hasn't moved */ if(!GetWindowRect(This->base.win, &rect)) return FALSE; - centerX = (rect.right - rect.left) / 2; - centerY = (rect.bottom - rect.top ) / 2; - if (This->win_centerX != centerX || This->win_centerY != centerY) { - This->win_centerX = centerX; - This->win_centerY = centerY; - } - This->mapped_center.x = This->win_centerX; - This->mapped_center.y = This->win_centerY; - MapWindowPoints(This->base.win, HWND_DESKTOP, &This->mapped_center, 1); + This->mapped_center.x = (rect.left + rect.right) / 2; + This->mapped_center.y = (rect.top + rect.bottom) / 2; return TRUE; }
@@ -488,15 +479,12 @@ static HRESULT WINAPI SysMouseWImpl_Acquire(LPDIRECTINPUTDEVICE8W iface)
/* Get the window dimension and find the center */ GetWindowRect(This->base.win, &rect); - This->win_centerX = (rect.right - rect.left) / 2; - This->win_centerY = (rect.bottom - rect.top ) / 2; + This->mapped_center.x = (rect.left + rect.right) / 2; + This->mapped_center.y = (rect.top + rect.bottom) / 2;
/* Warp the mouse to the center of the window */ if (This->base.dwCoopLevel & DISCL_EXCLUSIVE || This->warp_override == WARP_FORCE_ON) { - This->mapped_center.x = This->win_centerX; - This->mapped_center.y = This->win_centerY; - MapWindowPoints(This->base.win, HWND_DESKTOP, &This->mapped_center, 1); TRACE("Warping mouse to %d - %d\n", This->mapped_center.x, This->mapped_center.y); SetCursorPos( This->mapped_center.x, This->mapped_center.y ); This->last_warped = GetCurrentTime();