Возникла проблема с регистрацией всех событий мышки и клавиатуры от клиента.
В начале попытался сделать это с помощью XGrabPointer & XGrabKeyboard & XSendEvent, но потом узнал, что некоторые программы отвергают сообщения, присланные от XSendEvent.
Также пытался с помощью Грабов с последующей генерацией ивентов через XTest, при этом приходится отключать граб на время посылки ивента, но в этом случае теряется каждый 2й ивент (ButtonPress ловится, а ButtonRelease пропускается и идет прямо к своей программе, минуя мою).
int count=0;
while (count<20)
{
Window root, window;
int rootX,rootY,X,Y;
unsigned int mask;
XQueryPointer(tmp_pDisplay,RootWindow(tmp_pDisplay,0),&root,&window,
&rootX,&rootY,&X,&Y,&mask);