Windows APIのPeekMessage()はメッセージがない場合ただちに返ってくるが、XlibのXPeekEvent()はイベントが来るまでブロックするらしい。XlibでPeekMessage()相当のことをやりたい時はXPending()+XNextEvent()でできそう。
1 for (;;) { 2 if (XPending(dpy)) { 3 XNextEvent(dpy, &ev); 4 /* ... */ 5 } else { 6 /* イベントがないときの処理 */ 7 } 8 }