diff --git a/Xi/setcptr.c b/Xi/setcptr.c index 25874f0a5..66c8981b7 100644 --- a/Xi/setcptr.c +++ b/Xi/setcptr.c @@ -70,6 +70,7 @@ ProcXSetClientPointer(ClientPtr client) { DeviceIntPtr pDev; WindowPtr pWin; + ClientPtr targetClient; int err; REQUEST(xSetClientPointerReq); @@ -93,9 +94,11 @@ ProcXSetClientPointer(ClientPtr client) stuff->win, err); return Success; } - } + targetClient= wClient(pWin); + } else + targetClient = client; - if (!SetClientPointer(wClient(pWin), client, pDev)) + if (!SetClientPointer(targetClient, client, pDev)) { SendErrorToClient(client, IReqCode, X_SetClientPointer, stuff->win, BadAccess);