http://bugs.winehq.org/show_bug.cgi?id=10643
--- Comment #16 from Mark K markk@clara.co.uk 2011-12-13 10:55:42 CST --- I tested WinUAE 2.3.3 with Wine 1.3.34. This problem is still present.
I'm going to attach two logs made with WINEDEBUG=+key,+keyboard,+dinput. A description of what I did for each log:
key_keyboard_dinput_log_1.txt: - Start WinUAE. Click OK at dialog box then click Start. Emulation window opens. - Tap F12 very briefly. WinUAE Properties window appears. - Click Quit. Program exits.
That is what should happen. The next log was created by pressing and releasing F12 normally.
key_keyboard_dinput_log_3.txt: - Start WinUAE. Click OK at dialog box then click Start. Emulation window opens. - Press and release F12. WinUAE Properties window appears. - Click Okay. Properties window closes and opens. - Click Okay. Properties window closes and opens. - Click Okay. Properties window closes and opens. - Click in the emulation window. Press and release F12. - Click Quit. Program exits.
Doing grep "KeyEvent Key" key_keyboard_dinput_log_3.txt shows two F12 press/releases (which is correct). So the problem probably lies elsewhere.
First key release shown in log starting at line 20233: trace:key:X11DRV_KeyEvent type 3, window 2c0001b, state 0x0000, keycode 96 trace:key:X11DRV_KeyEvent nbyte = 0, status 0 trace:key:X11DRV_KeyEvent KeyRelease : keysym=ffc9 (F12), # of chars=0 / "" trace:key:EVENT_event_to_vkey e->keycode = 96 trace:key:X11DRV_KeyEvent keycode 96 converted to vkey 0x7B trace:key:X11DRV_KeyEvent bScan = 0x58. trace:key:X11DRV_send_keyboard_input hwnd 0x3009a vkey=007b scan=0058 flags=0002
Line 20317: trace:dinput:IDirectInputDevice2WImpl_Unacquire (0x1650c0) trace:dinput:IDirectInputDevice2WImpl_SetCooperativeLevel (0x1650c0) 0x3009a,0x00000015 trace:dinput:_dump_cooperativelevel_DI cooperative level : DISCL_EXCLUSIVE DISCL_FOREGROUND DISCL_NOWINKEY trace:dinput:IDirectInputDevice2WImpl_Acquire (0x1650c0) trace:dinput:hook_thread_proc Processing hook change notification lp:0 trace:dinput:IDirectInputDevice2WImpl_GetDeviceData (0x1333f8) 0x3b7f8a8 -> 0x3b7f884(30) x20, 0x00000000 trace:dinput:IDirectInputDevice2WImpl_GetDeviceData Returning 0 events queued trace:dinput:SysKeyboardWImpl_GetDeviceState (0x1650c0)->(256,0x3b7f5e4) trace:dinput:SysKeyboardWImpl_GetDeviceState - 58: 80 ... trace:dinput:fill_DataFormat Copying (c) to 88 from 88 (value -128) ... Line 20720: trace:dinput:IDirectInputDevice2WImpl_Unacquire (0x1650c0) trace:dinput:IDirectInputDevice2WImpl_SetCooperativeLevel (0x1650c0) 0x3009a,0x00000015 trace:dinput:_dump_cooperativelevel_DI cooperative level : DISCL_EXCLUSIVE DISCL_FOREGROUND DISCL_NOWINKEY trace:dinput:IDirectInputDevice2WImpl_Acquire (0x1650c0) trace:dinput:hook_thread_proc Processing hook change notification lp:0 trace:dinput:IDirectInputDevice2WImpl_GetDeviceData (0x1333f8) 0x3b7f8a8 -> 0x3b7f884(30) x20, 0x00000000 trace:dinput:IDirectInputDevice2WImpl_GetDeviceData Returning 0 events queued trace:dinput:SysKeyboardWImpl_GetDeviceState (0x1650c0)->(256,0x3b7f5e4) trace:dinput:SysKeyboardWImpl_GetDeviceState - 58: 80 ... trace:dinput:fill_DataFormat Copying (c) to 88 from 88 (value -128) ... Line 21118: trace:dinput:IDirectInputDevice2WImpl_Unacquire (0x1650c0) trace:dinput:IDirectInputDevice2WImpl_SetCooperativeLevel (0x1650c0) 0x3009a,0x00000015 trace:dinput:_dump_cooperativelevel_DI cooperative level : DISCL_EXCLUSIVE DISCL_FOREGROUND DISCL_NOWINKEY trace:dinput:IDirectInputDevice2WImpl_Acquire (0x1650c0) trace:dinput:hook_thread_proc Processing hook change notification lp:0 trace:dinput:IDirectInputDevice2WImpl_GetDeviceData (0x1333f8) 0x3b7f8a8 -> 0x3b7f884(30) x20, 0x00000000 trace:dinput:IDirectInputDevice2WImpl_GetDeviceData Returning 0 events queued trace:dinput:SysKeyboardWImpl_GetDeviceState (0x1650c0)->(256,0x3b7f5e4) trace:dinput:SysKeyboardWImpl_GetDeviceState - 58: 80 ... trace:dinput:fill_DataFormat Copying (c) to 88 from 88 (value -128) ...