[PATCH v3 0/6] winex11.drv: Fix several cursor and focus issues

Rémi Bernon rbernon at codeweavers.com
Thu Jun 27 09:30:09 CDT 2019


This is a resend of several patches with some addtional ones. This
should address cursor and focus related issues in winex11.drv.

Many games are grabbing and warping the cursor to keep it inside their
window. There's apparently no way in Xlib to prevent XWarpPointer to
succeed even if some other application have active grab on the pointer,
so each application should behave. The first two patches should make
Wine be nicer in this regard.

The focus issue is covered by the four other patches. As keyboard grab
notifications are send as focus events, Wine sometimes loses tracks of
the current focus state. Fixing this and using these notifications helps
deciding whether it is safe or not to ask for a cursor grab / warp.

Rémi Bernon (6):
  winex11.drv: Do not set clipping_cursor when clip window is mapped
  winex11.drv: Only call XWarpPointer if we can get exclusive grab
  winex11.drv: Print the FocusIn/FocusOut mode in trace message
  winex11.drv: Do not react to keyboard grab focus events
  winex11.drv: Only grab or warp the cursor when keyboard isn't grabbed
  winex11.drv: Retry last ClipCursor when grab is released

 dlls/winex11.drv/event.c  | 57 ++++++++++++++++++++++++++++++++++++---
 dlls/winex11.drv/mouse.c  | 46 +++++++++++++++++++++++++++++++
 dlls/winex11.drv/x11drv.h |  2 ++
 3 files changed, 102 insertions(+), 3 deletions(-)

--
2.20.1




More information about the wine-devel mailing list