From: "Rémi Bernon" Subject: [PATCH v3 00/10] winex11.drv: Improve ClipCursor handling. Message-Id: <20191007130216.21159-1-rbernon@codeweavers.com> Date: Mon, 7 Oct 2019 15:02:06 +0200 This is another try at fixing the remaining cursor clipping issues. It uses same Focus* event delay mechanism from the previous version - with some codepath simplification for the UseTakeFocus option. (PATCH 1-3) In addition to this, it also reverts some previous patches that introduced unnecessary complexity to replace them with a simpler version once focus events are delayed. (PATCH 4-10) Rémi Bernon (10): winex11.drv: Make it possible to merge events across process_events calls. winex11.drv: Call XSetInputFocus only, whenever WM_TAKE_FOCUS is received. winex11.drv: Wait for the WM to release the cursor before handling FocusIn events. Revert "winex11.drv: Retry last ClipCursor when grab is released." Revert "winex11.drv: Only grab or warp the cursor when keyboard isn't grabbed." Revert "winex11.drv: Explicitly call XUngrabPointer when clipping is released." winex11.drv: Merge FocusIn/FocusOut NotifyGrab/NotifyUngrab cases. winex11.drv: Release clipping window on FocusOut events. winex11.drv: Use the current clipping rectangle when restoring grabs. winex11.drv: Retry calling XGrabPointer later if it failed. dlls/winex11.drv/event.c | 198 +++++++++++++++++++++++--------------- dlls/winex11.drv/mouse.c | 42 +------- dlls/winex11.drv/x11drv.h | 3 +- 3 files changed, 127 insertions(+), 116 deletions(-) -- 2.23.0