| Index: ui/events/x/touch_factory_x11.cc
|
| diff --git a/ui/events/x/touch_factory_x11.cc b/ui/events/x/touch_factory_x11.cc
|
| index 68de538e31976b70f9e9ca55ba07c6ec9f792c88..8176ce221a62a338bda921a10db06d913725b7fd 100644
|
| --- a/ui/events/x/touch_factory_x11.cc
|
| +++ b/ui/events/x/touch_factory_x11.cc
|
| @@ -130,10 +130,9 @@ void TouchFactory::UpdateDeviceList(Display* display) {
|
| XIAnyClassInfo* xiclassinfo = devinfo->classes[k];
|
| if (xiclassinfo->type == XITouchClass) {
|
| XITouchClassInfo* tci =
|
| - reinterpret_cast<XITouchClassInfo *>(xiclassinfo);
|
| + reinterpret_cast<XITouchClassInfo*>(xiclassinfo);
|
| // Only care direct touch device (such as touch screen) right now
|
| if (tci->mode == XIDirectTouch) {
|
| - CacheTouchscreenIds(display, devinfo->deviceid);
|
| touch_device_lookup_[devinfo->deviceid] = true;
|
| touch_device_list_[devinfo->deviceid] = true;
|
| touch_device_available_ = true;
|
| @@ -145,6 +144,21 @@ void TouchFactory::UpdateDeviceList(Display* display) {
|
| #endif
|
| pointer_device_lookup_[devinfo->deviceid] = true;
|
| }
|
| +
|
| +#if defined(USE_XI2_MT)
|
| + if (devinfo->use == XIFloatingSlave || devinfo->use == XISlavePointer) {
|
| + for (int k = 0; k < devinfo->num_classes; ++k) {
|
| + XIAnyClassInfo* xiclassinfo = devinfo->classes[k];
|
| + if (xiclassinfo->type == XITouchClass) {
|
| + XITouchClassInfo* tci =
|
| + reinterpret_cast<XITouchClassInfo*>(xiclassinfo);
|
| + // Only care direct touch device (such as touch screen) right now
|
| + if (tci->mode == XIDirectTouch)
|
| + CacheTouchscreenIds(display, devinfo->deviceid);
|
| + }
|
| + }
|
| + }
|
| +#endif
|
| }
|
| }
|
|
|
|
|