]> git.lizzy.rs Git - irrlicht.git/commitdiff
Merging r6181 through r6184 from trunk to ogl-es branch
authorcutealien <cutealien@dfc29bdd-3216-0410-991c-e03cc46cb475>
Wed, 6 Jan 2021 14:52:49 +0000 (14:52 +0000)
committercutealien <cutealien@dfc29bdd-3216-0410-991c-e03cc46cb475>
Wed, 6 Jan 2021 14:52:49 +0000 (14:52 +0000)
- Changes to touch-input handling on X11

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@6185 dfc29bdd-3216-0410-991c-e03cc46cb475

source/Irrlicht/CIrrDeviceLinux.cpp

index 68e6e3363a15a911588aa2af22324dee365f8f97..87a60abd59d475a1d321022cb850cb99056d89cc 100644 (file)
@@ -2040,39 +2040,19 @@ void CIrrDeviceLinux::initXInput2()
                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