【发布时间】:2011-04-13 16:07:33
【问题描述】:
如何让 X11 应用程序监听 DBus 信号。 应该启动监听 Dbus 信号的 gmainloop,并启动 X11 应用程序 XEvent 循环。 那么有没有一种优雅的方法来做到这一点?还是我必须在另一个线程中运行 gmainloop。
问候, 莱文
【问题讨论】:
标签: x11 glib dbus xlib xserver
如何让 X11 应用程序监听 DBus 信号。 应该启动监听 Dbus 信号的 gmainloop,并启动 X11 应用程序 XEvent 循环。 那么有没有一种优雅的方法来做到这一点?还是我必须在另一个线程中运行 gmainloop。
问候, 莱文
【问题讨论】:
标签: x11 glib dbus xlib xserver
如果你想阻塞两个或更多的东西(比如 X 和 dbus),你需要一个主循环。 您可以使用 GLib 的主循环或 libev 或其他库。
这里有两个使用 Xlib 和 GLib 的主循环的例子:
【讨论】:
难道你不能为 X 事件循环获取文件描述符吗?然后你应该可以将它添加到 gobject 主循环中。
据我所知,ConnectionNumber(xdpy) 将提供文件
描述符,然后您可以将其添加到源中,您可以将其与
g_source_add_poll().
【讨论】: