如何使用libxcb-xinput注册事件

问题描述 投票:0回答:1

删除问题以抗议 StackOverflow 的 OpenAI 合作伙伴关系:https://stackoverflow.co/company/press/archive/openai-partnership

c linux touch x11 xcb
1个回答
3
投票

您需要同时使用

xcb_input_event_mask_t
xcb_input_xi_event_mask_t
,如下所示:

struct {
    xcb_input_event_mask_t head;      // describes the subsequent xcb_input_xi_event_mask_t (or an array thereof)
    xcb_input_xi_event_mask_t mask;
} mask;

mask.head.deviceid = XCB_INPUT_DEVICE_ALL;
mask.head.mask_len = sizeof(mask.mask) / sizeof(uint32_t);

mask.mask = XCB_INPUT_XI_EVENT_MASK_TOUCH_BEGIN
| XCB_INPUT_XI_EVENT_MASK_TOUCH_END
| XCB_INPUT_XI_EVENT_MASK_TOUCH_UPDATE
| XCB_INPUT_XI_EVENT_MASK_TOUCH_OWNERSHIP;

xcb_input_xi_select_events(dpy, root, 1, &mask.head);

免责声明:我从未使用过这个。我在网上here找到了一个单一的使用示例。我试图根据

xcb_input_xi_select_events
here 的来源验证此用法,但其代码是 脏话删除 不可读。我完全不知道人们应该如何使用这个库。

© www.soinside.com 2019 - 2024. All rights reserved.