[PATCH xwayland v3 1/7] dix: assume warping on the RootWindow always happens on visible coords

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


If the root window borderClip region is null, the PointInWindowIsVisible()
check fails if pointer warping is attempted on the root window, making
the warping operation bail out early.

Assume coordinates always lay inside the root window for this case,
the actual position will be clamped later within screen coordinates anyway.

Signed-off-by: Carlos Garnacho <carlosg at gnome.org>
Acked-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 dix/events.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dix/events.c b/dix/events.c
index cc26ba5db..3e3a01ef9 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -3575,7 +3575,7 @@ ProcWarpPointer(ClientPtr client)
              winX + stuff->srcX + (int) stuff->srcWidth < x) ||
             (stuff->srcHeight != 0 &&
              winY + stuff->srcY + (int) stuff->srcHeight < y) ||
-            !PointInWindowIsVisible(source, x, y))
+            (source->parent && !PointInWindowIsVisible(source, x, y)))
             return Success;
     }
     if (dest) {
-- 
2.13.0



More information about the xorg-devel mailing list