| Index: ui/base/x/events_x.cc
 | 
| diff --git a/ui/base/x/events_x.cc b/ui/base/x/events_x.cc
 | 
| index 1b8816a1de747829c9cbf18f4bb04470a93b4690..8c2dff28b588be303844774b7c0027ef99154da3 100644
 | 
| --- a/ui/base/x/events_x.cc
 | 
| +++ b/ui/base/x/events_x.cc
 | 
| @@ -684,12 +684,13 @@ EventType EventTypeFromNative(const base::NativeEvent& native_event) {
 | 
|            bool is_cancel;
 | 
|            if (GetFlingData(native_event, &vx, &vy, &is_cancel)) {
 | 
|              return is_cancel ? ET_SCROLL_FLING_CANCEL : ET_SCROLL_FLING_START;
 | 
| -          } else if (GetScrollOffsets(native_event, NULL, NULL))
 | 
| +          } else if (GetScrollOffsets(native_event, NULL, NULL)) {
 | 
|              return ET_SCROLL;
 | 
| -          else if (GetButtonMaskForX2Event(xievent)) {
 | 
| +          } else if (GetButtonMaskForX2Event(xievent)) {
 | 
|              return ET_MOUSE_DRAGGED;
 | 
| -          } else
 | 
| +          } else {
 | 
|              return ET_MOUSE_MOVED;
 | 
| +          }
 | 
|          }
 | 
|        }
 | 
|      }
 | 
| @@ -830,6 +831,28 @@ gfx::Point EventLocationFromNative(const base::NativeEvent& native_event) {
 | 
|    return gfx::Point();
 | 
|  }
 | 
|  
 | 
| +gfx::Point EventSystemLocationFromNative(
 | 
| +    const base::NativeEvent& native_event) {
 | 
| +  switch (native_event->type) {
 | 
| +    case ButtonPress:
 | 
| +    case ButtonRelease: {
 | 
| +      return gfx::Point(native_event->xbutton.x_root,
 | 
| +                        native_event->xbutton.y_root);
 | 
| +    }
 | 
| +    case MotionNotify: {
 | 
| +      return gfx::Point(native_event->xmotion.x_root,
 | 
| +                        native_event->xmotion.y_root);
 | 
| +    }
 | 
| +    case GenericEvent: {
 | 
| +      XIDeviceEvent* xievent =
 | 
| +          static_cast<XIDeviceEvent*>(native_event->xcookie.data);
 | 
| +      return gfx::Point(xievent->root_x, xievent->root_y);
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  return gfx::Point();
 | 
| +}
 | 
| +
 | 
|  int EventButtonFromNative(const base::NativeEvent& native_event) {
 | 
|    CHECK_EQ(GenericEvent, native_event->type);
 | 
|    XIDeviceEvent* xievent =
 | 
| 
 |