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