Я делаю надстройку в 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
, но тогда я получаю ТОЛЬКО события, которые происходят в этом созданном окне.