[PATCH xwayland v3 0/7] Pointer locking/confinement fixes

Carlos Garnacho carlosg at gnome.org
Sun May 28 13:56:15 UTC 2017


Here's an updated version of the patches loosening some restrictions for
pointer confinement/locking to work. The patches were originally reported
as helping for Wine, but since then I've also seen them fixing problems
with blender[1] and some other "native" linux games from Steam that would
also do the "confine, but don't warp" trick.

The main changes are:
- The checks on confinement/warp got again more lenient compared to v2
  patches. We can't successfully correlate the focus client with the
  client doing the grab/warp operation in some situations.
- Instead of special casing relative motion while the pointer is confined
  and has no cursor, just lock the pointer and rely on the warp_emulator.


[1] https://bugs.freedesktop.org/show_bug.cgi?id=100740

Carlos Garnacho (7):
  dix: assume warping on the RootWindow always happens on visible coords
  xwayland: Allow pointer warp on root/None window
  xwayland: "Accept" confineTo on InputOnly windows
  xwayland: Update root window size when desktop size changes
  xwayland: Lock the pointer if it is confined and has no cursor
  Xi: Use WarpPointerProc hook on XI pointer warping implementation
  xwayland: Remove two unused proc pointers.

 Xi/xiwarppointer.c            |  4 ++++
 dix/events.c                  |  2 +-
 hw/xwayland/xwayland-input.c  | 29 ++++++++++++++++++++++++++++-
 hw/xwayland/xwayland-output.c |  3 +++
 hw/xwayland/xwayland.c        | 33 ++++++++++++++++++++++++++++++++-
 hw/xwayland/xwayland.h        |  2 --
 6 files changed, 68 insertions(+), 5 deletions(-)


More information about the xorg-devel mailing list