diff options
author | Scott Anderson <scott@anderso.nz> | 2018-11-11 14:21:49 +1300 |
---|---|---|
committer | Scott Anderson <scott@anderso.nz> | 2018-11-13 10:42:02 +1300 |
commit | d89e868cc9702f1dcd51de39c6b009e8c6fd3bd6 (patch) | |
tree | 04bef0c6157c19a5d2451f3c82c2b4bb51af03b6 /backend/x11/output.c | |
parent | 88b2d6fe25f77b2140bb76d5d3c8ae037cad31e5 (diff) |
backend/x11: Add new Xinput events
Diffstat (limited to 'backend/x11/output.c')
-rw-r--r-- | backend/x11/output.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/backend/x11/output.c b/backend/x11/output.c index 8cb4b3eb..3acb41fd 100644 --- a/backend/x11/output.c +++ b/backend/x11/output.c @@ -4,6 +4,9 @@ #include <stdlib.h> #include <string.h> +#include <xcb/xcb.h> +#include <xcb/xinput.h> + #include <wlr/interfaces/wlr_output.h> #include <wlr/interfaces/wlr_pointer.h> #include <wlr/util/log.h> @@ -160,6 +163,21 @@ struct wlr_output *wlr_x11_output_create(struct wlr_backend *backend) { x11->screen->root, 0, 0, wlr_output->width, wlr_output->height, 1, XCB_WINDOW_CLASS_INPUT_OUTPUT, x11->screen->root_visual, mask, values); +#if 0 + struct { + xcb_input_event_mask_t head; + xcb_input_xi_event_mask_t mask; + } xinput_mask = { + .head = { .deviceid = XCB_INPUT_DEVICE_ALL_MASTER, .mask_len = 1 }, + .mask = XCB_INPUT_XI_EVENT_MASK_KEY_PRESS | + XCB_INPUT_XI_EVENT_MASK_KEY_RELEASE | + XCB_INPUT_XI_EVENT_MASK_BUTTON_PRESS | + XCB_INPUT_XI_EVENT_MASK_BUTTON_RELEASE | + XCB_INPUT_XI_EVENT_MASK_MOTION, + }; + xcb_input_xi_select_events(x11->xcb, output->win, 1, &xinput_mask.head); +#endif + output->surf = wlr_egl_create_surface(&x11->egl, &output->win); if (!output->surf) { wlr_log(WLR_ERROR, "Failed to create EGL surface"); |