2

我正在尝试在 Mono 和 X11 中实现全局热键。不幸的是应用程序使用System.Windows.Forms,所以我不能使用这个问题中提出的 GDK# 事件过滤器。

使用XGrabKey作品,但我遇到了事件循环的问题。关闭应用程序时,处理 X11 事件循环的线程仍然挂起XNextEvent。有办法解决吗?我宁愿不使用XPending. 我可以以某种方式取消XNextEvent或发送虚拟事件吗?

我正在调用XGrabKey根窗口,所以不幸的是我没有收到任何类似DestroyNotifyor的事件UnmapNotify

4

1 回答 1

1

用于XSendEvent发送XClientMessageEvent. 创建您自己的 atom 并设置Atom事件的成员,以便其他可能XClientMessageEvent在根窗口上监视的应用程序不受影响。

在你的事件循环中,检查这个原子,如果你得到它就退出。

于 2012-06-01T19:41:36.413 回答