https://bugs.winehq.org/show_bug.cgi?id=44032
--- Comment #13 from Maciej Stanczew maciej.stanczew+b@gmail.com --- I have done some debugging of queue_mouse_message function and have found the following: - Pressing the mouse button calls this function twice: first call has input->mouse.flags = 0x8003 (MOVE|LEFTDOWN), second = 0x8001 (MOVE). - Releasing the button calls it with input->mouse.flags = 0x8005 (MOVE|LEFTUP), and then, after about ~1 ms, an injected event is generated (hook_flags = 1, input->mouse.flags = 1, input->mouse.time = 0). - Without Voice chat enabled, all above events return 0 from call to 'send_hook_ll_message' that is assigned to 'wait' variable. - With Voice chat enabled the above call to 'send_hook_ll_message' *always* returns 1. With the 'server-send_hardware_message' patchset reverted, this is the only change in behavior. - With the 'server-send_hardware_message' in place (not reverted) however, on every second mouse-down the injected event appears after the mouse is *pressed* instead of released (releasing the mouse generates just the MOVE|LEFTUP event, without the following injected event). This is the problematic point -- there was a mouse-down event, but the game behaves as if the button was immediately released.
Can someone knowledgeable in this area look into the issue? I have 100% reproduction of the bug, I can gather whatever logs would be needed.