http://bugs.winehq.org/show_bug.cgi?id=6960
Summary: regression: mouse stuck in quake 3 Product: Wine Version: 0.9.27. Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: wine-directx-dinput AssignedTo: wine-bugs@winehq.org ReportedBy: damjan.jov@gmail.com
REGRESSION:
In Quake 3 arena (demo), the mouse is stuck at the top-left corner of the screen and doesn't budge.
adadb5be7815f0e9a404afeda04f72122918c234 is first bad commit diff-tree adadb5be7815f0e9a404afeda04f72122918c234 (from a97680751a55e02b6b7e5f561e7c1cfcd4eb7115) Author: Vitaliy Margolen wine-patch@kievinfo.com Date: Sat Sep 16 12:25:29 2006 -0600
dinput: Return proper errors in SetCooperativeLevel.
:040000 040000 4e6b347360a5bb9fca9b875124d9205a380d8869 17d33684b1496b2d9a6ec9e6197f75341ec7b4b6 M dlls
RELEVANT LOG:
trace:dinput:IDirectInputDevice2AImpl_SetCooperativeLevel (0x17f970) (nil),0x00000005 trace:dinput:IDirectInputDevice2AImpl_SetCooperativeLevel cooperative level : DISCL_EXCLUSIVE DISCL_FOREGROUND
PROPOSED PATCH:
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c index 618818f..7fe25ff 100644 --- a/dlls/dinput/device.c +++ b/dlls/dinput/device.c @@ -623,11 +623,9 @@ HRESULT WINAPI IDirectInputDevice2AImpl_ (dwflags & (DISCL_FOREGROUND | DISCL_BACKGROUND)) == (DISCL_FOREGROUND | DISCL_BACKGROUND)) return DIERR_INVALIDPARAM;
- if (dwflags == (DISCL_NONEXCLUSIVE | DISCL_BACKGROUND)) + if (dwflags == (DISCL_NONEXCLUSIVE | DISCL_BACKGROUND) || !hwnd) hwnd = GetDesktopWindow();
- if (!hwnd) return E_HANDLE; - /* For security reasons native does not allow exclusive background level for mouse and keyboard only */ if (dwflags & DISCL_EXCLUSIVE && dwflags & DISCL_BACKGROUND &&