Index: ui/base/x/events_x.cc |
diff --git a/ui/base/x/events_x.cc b/ui/base/x/events_x.cc |
index 4ad90e01db1c353c6f6479f1fe9ac12d410df2a1..fe6443947d82a1287070d0d0cd9dd825346baef3 100644 |
--- a/ui/base/x/events_x.cc |
+++ b/ui/base/x/events_x.cc |
@@ -720,11 +720,21 @@ int EventFlagsFromNative(const base::NativeEvent& native_event) { |
XIDeviceEvent* xievent = |
static_cast<XIDeviceEvent*>(native_event->xcookie.data); |
- const bool touch = |
- TouchFactory::GetInstance()->IsTouchDevice(xievent->sourceid); |
switch (xievent->evtype) { |
+#if defined(USE_XI2_MT) |
+ case XI_TouchBegin: |
+ case XI_TouchUpdate: |
+ case XI_TouchEnd: |
+ return GetButtonMaskForX2Event(xievent) | |
+ GetEventFlagsFromXState(xievent->mods.effective) | |
+ GetEventFlagsFromXState( |
+ XModifierStateWatcher::GetInstance()->state()); |
+ break; |
+#endif |
case XI_ButtonPress: |
case XI_ButtonRelease: { |
+ const bool touch = |
+ TouchFactory::GetInstance()->IsTouchDevice(xievent->sourceid); |
int flags = GetButtonMaskForX2Event(xievent) | |
GetEventFlagsFromXState(xievent->mods.effective); |
if (touch) { |