[PATCH v4 6/6] winex11.drv: Only call XWarpPointer if we can get exclusive pointer grab

Rémi Bernon rbernon at codeweavers.com
Mon Sep 9 08:23:42 CDT 2019


On 9/9/19 2:25 PM, Henri Verbeet wrote:
> On Fri, 30 Aug 2019 at 14:49, Rémi Bernon <rbernon at codeweavers.com> wrote:
>>
>> XWarpPointer will always succeed, regardless of grabs, so if the pointer
>> is already grabbed, by some other application, we should not ask to warp
>> it.
>>
>> Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
>> ---
>>   dlls/winex11.drv/mouse.c | 13 +++++++++++++
>>   1 file changed, 13 insertions(+)
>>
> This breaks the d3d8 and d3d9 test_cursor_pos() tests:
> 
> device.c:1122: Test failed: Didn't receive MOUSEMOVE 5 (125, 125).
> 

I guess it could be the MotionNotify event caused by XWarpPointer that 
may not be received anymore, as the cursor grab is called on the root 
window, but I believe they were supposed to be ignored anyway (see 
warp_serial and is_old_motion_event function).

Also, when running these tests on the testbot, I don't see any failure 
(I commented out the other tests, but that should be ok, right?):
* https://testbot.winehq.org/JobDetails.pl?Key=56365
* https://testbot.winehq.org/JobDetails.pl?Key=56366

Same thing when running the tests locally. Tested in Xephyr with 
openbox, and with my session's X server with mutter.

Could you give me more details about how you got the failure?

Cheers,
-- 
Rémi Bernon <rbernon at codeweavers.com>



More information about the wine-devel mailing list