单声道中的全局热键
本文关键字:全局 声道 单声道 | 更新日期: 2023-09-27 18:35:49
我正在尝试在 Mono 和 X11 中实现全局热键。不幸的是,应用程序使用System.Windows.Forms
,所以我不能使用这个问题中提出的GDK#事件过滤器。
使用 XGrabKey
有效,但我在事件循环方面遇到了问题。关闭应用程序时,处理 X11 事件循环的线程仍挂起在 XNextEvent
中。有没有办法解决这个问题?我宁愿不诉诸XPending
的民意调查.我可以以某种方式取消XNextEvent
或发送虚拟事件吗?
我在根窗口上调用XGrabKey
,所以不幸的是我没有收到任何像DestroyNotify
或UnmapNotify
这样的事件。
使用 XSendEvent
发送XClientMessageEvent
。创建自己的 atom 并设置事件的Atom
成员,以便可能正在根窗口上监视XClientMessageEvent
的其他应用不受影响。
在你的事件循环中,检查这个原子,如果你得到它,就退出。