使用X11/Xlib确定队列中是否有事件
Determining if there are events in the queue with X11/Xlib
我正在开发一个X11应用程序,我正在尝试编写一个函数,该函数将处理当前队列中的任何事件,然后返回而不阻塞。
我找到的所有Xlib教程都在一个永久循环中使用XNextEvent,该循环在每个XNextEvent调用上阻塞,直到事件准备好。
我已经看了XEventsQueued与QueuedAlready,这似乎应该返回准备处理的事件的数量,但它总是返回0,即使我知道有事件,可以用XNextEvent检索。
我在这里错过了什么,或者有另一种方法来确定队列中是否有可用的事件?
它看起来就像如果你只是调用XEventsQueued与QueuedAlready事件永远不会从连接中读取并放入队列。使用QueuedAfterFlush调用xeventqueue将刷新输出缓冲区,然后将连接上可用的任何事件读入事件队列。XPending做同样的事情。QueuedAfterFlush或XPending是我需要的
相关文章:
- 如果事件在仍在执行时再次设置,RegisterWaitForSingleObject 是否会并行运行回调?
- 创建的事件数量是否有限制?
- 是否可以在QT GUI应用程序中处理事件时播放加载动画指示器?
- 是否可以在C++(17)中捕获某些对象属性的破坏性赋值事件
- epoll_wait() 是否报告所有关闭的套接字事件
- 是否有任何可能的方法将事件(自定义)附加到在运行时创建的对象?[C 构建器]
- 在使用 Poll() 的 TCP 服务器 - 客户端连接中,我是否需要手动设置事件?我从来没有到达 POLLOUT 来写
- 是否可以捕获全局鼠标事件
- 是否可以使用 select(2) 来监视 SDL 文本输入事件
- 是否有任何对象可以用作FIFO和弹出数据的事件
- 是否可以在 wxFrame 中捕获鼠标事件
- 如何调试是否设置了 Windows 事件对象
- 是否可以触发由 Minko 中的 HTML 事件启动的 C++ 代码
- 键盘事件:订单是否得到保证
- Qt表单中是否有更改事件
- 是否可以在不调用 QApplication::exec() 的情况下创建本地事件循环
- 是否可以在 MFC 按钮控件上检测到鼠标右键单击事件
- 是否可以捕获翻译/调度消息循环中的窗口消息/事件
- ZeroMQ是否有数据到达时的通知/回调事件/消息
- 如何在VC++中不使用.NET Framework来确定特定事件日志是否存在