return;\r
}\r
\r
- int cnt = 0;\r
- XIDeviceInfo *di = XIQueryDevice(XDisplay, XIAllDevices, &cnt);\r
- if ( di )\r
- {\r
- for (int i = 0; i < cnt; ++i)\r
- {\r
- bool hasTouchClass = false;\r
- XIDeviceInfo *dev = &di[i];\r
- for (int j = 0; j < dev->num_classes; ++j)\r
- {\r
- if (dev->classes[j]->type == XITouchClass)\r
- {\r
- hasTouchClass = true;\r
- break;\r
- }\r
- }\r
- if ( hasTouchClass )\r
- {\r
- XIEventMask eventMask;\r
- unsigned char mask[XIMaskLen(XI_TouchEnd)];\r
- memset(mask, 0, sizeof(mask));\r
- eventMask.deviceid = dev->deviceid;\r
- eventMask.mask_len = sizeof(mask);\r
- eventMask.mask = mask;\r
- XISetMask(eventMask.mask, XI_TouchBegin);\r
- XISetMask(eventMask.mask, XI_TouchUpdate);\r
- XISetMask(eventMask.mask, XI_TouchEnd);\r
-\r
- XISelectEvents(XDisplay, XWindow, &eventMask, 1);\r
- }\r
- }\r
- XIFreeDeviceInfo(di);\r
- }\r
+ // So far we only use XInput2 for touch events.\r
+ // So we enable those and disable all other events for now.\r
+ XIEventMask eventMask;\r
+ unsigned char mask[XIMaskLen(XI_TouchEnd)];\r
+ memset(mask, 0, sizeof(mask));\r
+ eventMask.deviceid = XIAllMasterDevices;\r
+ eventMask.mask_len = sizeof(mask);\r
+ eventMask.mask = mask;\r
+ XISetMask(eventMask.mask, XI_TouchBegin);\r
+ XISetMask(eventMask.mask, XI_TouchUpdate);\r
+ XISetMask(eventMask.mask, XI_TouchEnd);\r
+\r
+ XISelectEvents(XDisplay, XWindow, &eventMask, 1);\r
#endif\r
}\r
\r