我正在 Firefox 中制作插件,所以我有一个 ChromeWorker - 这是一个特权 WebWorker。这只是主线程之外的一个线程。
在这里我没有代码,但这个(修改使其看起来不像 js-ctypes [这是插件的语言])
在启动时我运行这段代码,conn
是一个全局变量:
conn = xcb_connect(null, null);
然后我以 200 毫秒的间隔运行它:
evt = xcb_poll_for_event(conn);
console.log('evt:', evt);
if (!evt.isNull()) {
console.log('good got an event!!');
ostypes.API('free')(evt);
}
然而evt
,总是null
,我从来没有得到任何事件。我的目标是获取系统上的所有事件。
任何人都知道是什么导致如此简单的事情无法工作?
我努力了
xcb_change_window_attributes (conn, screens.data->root, XCB_CW_EVENT_MASK, values);
但这并没有解决它:(
我可以让它工作的唯一方法是做xcb_create_window
xcb_map_window
但是我只得到在这个创建的窗口中发生的事件。