私は Firefox でアドオンを作成しているので、特権 WebWorker である ChromeWorker があります。これは、メインスレッド以外の単なるスレッドです。
ここにはコードはありませんが、これです(js-ctypes [アドオンの言語]ではないように見えるように変更されています)
起動時にこのコードを実行します。これconn
はグローバル変数です。
conn = xcb_connect(null, null);
次に、これを 200ms 間隔で実行します。
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
、この作成されたウィンドウで発生するイベントのみを取得します。