diff --git a/Xext/xtest.c b/Xext/xtest.c index 5f0b25eb8..721dacc0c 100644 --- a/Xext/xtest.c +++ b/Xext/xtest.c @@ -440,10 +440,14 @@ ProcXTestFakeInput(client) ev->u.keyButtonPointer.rootY); return client->noClientException; } - (*root->drawable.pScreen->SetCursorPosition) - (dev, root->drawable.pScreen, - ev->u.keyButtonPointer.rootX, - ev->u.keyButtonPointer.rootY, FALSE); + /* Only update sprite for MDs and floating SDs */ + if (dev->isMaster || (!dev->isMaster && !dev->u.master)) + { + (*root->drawable.pScreen->SetCursorPosition) + (dev, root->drawable.pScreen, + ev->u.keyButtonPointer.rootX, + ev->u.keyButtonPointer.rootY, FALSE); + } dev->lastx = ev->u.keyButtonPointer.rootX; dev->lasty = ev->u.keyButtonPointer.rootY; break;