aboutsummaryrefslogtreecommitdiff
path: root/backend/x11/output.c
diff options
context:
space:
mode:
authorScott Anderson <scott@anderso.nz>2018-11-11 14:21:49 +1300
committerScott Anderson <scott@anderso.nz>2018-11-13 10:42:02 +1300
commitd89e868cc9702f1dcd51de39c6b009e8c6fd3bd6 (patch)
tree04bef0c6157c19a5d2451f3c82c2b4bb51af03b6 /backend/x11/output.c
parent88b2d6fe25f77b2140bb76d5d3c8ae037cad31e5 (diff)
backend/x11: Add new Xinput events
Diffstat (limited to 'backend/x11/output.c')
-rw-r--r--backend/x11/output.c18
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");