2013-01-16 3 views
0

X11 응용 프로그램에서 작업 중이며 현재 큐에있는 이벤트를 처리하고 차단하지 않고 리턴하는 함수를 작성하려고합니다.X11/Xlib 큐에 이벤트가 있는지 확인

모든 Xlib 튜토리얼에서는 이벤트가 준비 될 때까지 XNextEvent 호출을 차단하는 영원한 루프에서 XNextEvent를 사용합니다.

XEventsQueued를 QueuedAlready로 보았습니다.이 이벤트는 처리 할 준비가 된 이벤트 수를 반환해야하지만 XNextEvent로 검색 할 수있는 이벤트가있는 경우에도 항상 0을 반환합니다.

여기에 뭔가가 누락되었거나 대기열에서 사용할 수있는 이벤트가 있는지 확인할 수있는 다른 방법이 있습니까?

답변

0

XEventsQueued를 QueuedAlready와 함께 호출하면 이벤트가 연결에서 읽히지 않고 대기열에 들어 가지 않는 것처럼 보입니다. QueuedAfterFlush로 XEventsQueued를 호출하면 출력 버퍼가 플러시되고 연결에서 사용 가능한 이벤트를 이벤트 대기열로 읽습니다. XPending도 똑같은 일을합니다. QueuedAfterFlush 또는 XPending은 내가 필요한 것입니다.