Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 35 #include "core/events/GestureEvent.h" | 35 #include "core/events/GestureEvent.h" |
| 36 #include "core/events/KeyboardEvent.h" | 36 #include "core/events/KeyboardEvent.h" |
| 37 #include "core/events/MouseEvent.h" | 37 #include "core/events/MouseEvent.h" |
| 38 #include "core/events/TouchEvent.h" | 38 #include "core/events/TouchEvent.h" |
| 39 #include "core/events/WheelEvent.h" | 39 #include "core/events/WheelEvent.h" |
| 40 #include "core/frame/FrameView.h" | 40 #include "core/frame/FrameView.h" |
| 41 #include "core/frame/VisualViewport.h" | 41 #include "core/frame/VisualViewport.h" |
| 42 #include "core/layout/api/LayoutItem.h" | 42 #include "core/layout/api/LayoutItem.h" |
| 43 #include "core/page/ChromeClient.h" | 43 #include "core/page/ChromeClient.h" |
| 44 #include "core/page/Page.h" | 44 #include "core/page/Page.h" |
| 45 #include "platform/FrameViewBase.h" | |
| 46 #include "platform/KeyboardCodes.h" | 45 #include "platform/KeyboardCodes.h" |
| 47 #include "public/platform/Platform.h" | 46 #include "public/platform/Platform.h" |
| 48 | 47 |
| 49 namespace blink { | 48 namespace blink { |
| 50 | 49 |
| 51 namespace { | 50 namespace { |
| 52 float FrameScale(const FrameViewBase* frame_view_base) { | 51 float FrameScale(const FrameView* frame_view) { |
| 53 float scale = 1; | 52 float scale = 1; |
| 54 if (frame_view_base) { | 53 if (frame_view) { |
| 55 FrameView* root_view = ToFrameView(frame_view_base->Root()); | 54 FrameView* root_view = ToFrameView(frame_view->Root()); |
| 56 if (root_view) | 55 if (root_view) |
| 57 scale = root_view->InputEventsScaleFactor(); | 56 scale = root_view->InputEventsScaleFactor(); |
| 58 } | 57 } |
| 59 return scale; | 58 return scale; |
| 60 } | 59 } |
| 61 | 60 |
| 62 FloatPoint FrameTranslation(const FrameViewBase* frame_view_base) { | 61 FloatPoint FrameTranslation(const FrameView* frame_view) { |
| 63 float scale = 1; | 62 float scale = 1; |
| 64 FloatSize offset; | 63 FloatSize offset; |
| 65 IntPoint visual_viewport; | 64 IntPoint visual_viewport; |
| 66 FloatSize overscroll_offset; | 65 FloatSize overscroll_offset; |
| 67 if (frame_view_base) { | 66 if (frame_view) { |
| 68 FrameView* root_view = ToFrameView(frame_view_base->Root()); | 67 FrameView* root_view = ToFrameView(frame_view->Root()); |
| 69 if (root_view) { | 68 if (root_view) { |
| 70 scale = root_view->InputEventsScaleFactor(); | 69 scale = root_view->InputEventsScaleFactor(); |
| 71 offset = FloatSize(root_view->InputEventsOffsetForEmulation()); | 70 offset = FloatSize(root_view->InputEventsOffsetForEmulation()); |
| 72 visual_viewport = FlooredIntPoint( | 71 visual_viewport = FlooredIntPoint( |
| 73 root_view->GetPage()->GetVisualViewport().VisibleRect().Location()); | 72 root_view->GetPage()->GetVisualViewport().VisibleRect().Location()); |
| 74 overscroll_offset = | 73 overscroll_offset = |
| 75 root_view->GetPage()->GetChromeClient().ElasticOverscroll(); | 74 root_view->GetPage()->GetChromeClient().ElasticOverscroll(); |
| 76 } | 75 } |
| 77 } | 76 } |
| 78 return FloatPoint( | 77 return FloatPoint( |
| 79 -offset.Width() / scale + visual_viewport.X() + overscroll_offset.Width(), | 78 -offset.Width() / scale + visual_viewport.X() + overscroll_offset.Width(), |
| 80 -offset.Height() / scale + visual_viewport.Y() + | 79 -offset.Height() / scale + visual_viewport.Y() + |
| 81 overscroll_offset.Height()); | 80 overscroll_offset.Height()); |
| 82 } | 81 } |
| 83 | 82 |
| 84 FloatPoint ConvertAbsoluteLocationForLayoutObjectFloat( | 83 FloatPoint ConvertAbsoluteLocationForLayoutObjectFloat( |
| 85 const DoublePoint& location, | 84 const DoublePoint& location, |
| 86 const LayoutItem layout_item) { | 85 const LayoutItem layout_item) { |
| 87 return layout_item.AbsoluteToLocal(FloatPoint(location), kUseTransforms); | 86 return layout_item.AbsoluteToLocal(FloatPoint(location), kUseTransforms); |
| 88 } | 87 } |
| 89 | 88 |
| 90 IntPoint ConvertAbsoluteLocationForLayoutObjectInt( | 89 IntPoint ConvertAbsoluteLocationForLayoutObjectInt( |
| 91 const DoublePoint& location, | 90 const DoublePoint& location, |
| 92 const LayoutItem layout_item) { | 91 const LayoutItem layout_item) { |
| 93 return RoundedIntPoint( | 92 return RoundedIntPoint( |
| 94 ConvertAbsoluteLocationForLayoutObjectFloat(location, layout_item)); | 93 ConvertAbsoluteLocationForLayoutObjectFloat(location, layout_item)); |
| 95 } | 94 } |
| 96 | 95 |
| 97 // FIXME: Change |FrameViewBase| to const FrameViewBase& after RemoteFrames get | 96 // FIXME: Change |FrameView| to const FrameView& after RemoteFrames get |
|
dcheng
2017/04/11 00:27:55
+kenrb, is there some cleanup here?
| |
| 98 // RemoteFrameViews. | 97 // RemoteFrameViews. |
| 99 void UpdateWebMouseEventFromCoreMouseEvent(const MouseEvent& event, | 98 void UpdateWebMouseEventFromCoreMouseEvent(const MouseEvent& event, |
| 100 const FrameViewBase* frame_view_base, | 99 const FrameView* plugin_parent, |
|
dcheng
2017/04/11 00:27:55
FWIW, I find this slightly confusing: there's noth
haraken
2017/04/11 01:07:24
Yeah, this method itself is not doing anything plu
| |
| 101 const LayoutItem layout_item, | 100 const LayoutItem layout_item, |
| 102 WebMouseEvent& web_event) { | 101 WebMouseEvent& web_event) { |
| 103 web_event.SetTimeStampSeconds(event.PlatformTimeStamp().InSeconds()); | 102 web_event.SetTimeStampSeconds(event.PlatformTimeStamp().InSeconds()); |
| 104 web_event.SetModifiers(event.GetModifiers()); | 103 web_event.SetModifiers(event.GetModifiers()); |
| 105 | 104 |
| 106 FrameView* view = | 105 // TODO(bokan): If plugin_parent == nullptr, pointInRootFrame will really be |
| 107 frame_view_base ? ToFrameView(frame_view_base->Parent()) : 0; | |
| 108 // TODO(bokan): If view == nullptr, pointInRootFrame will really be | |
| 109 // pointInRootContent. | 106 // pointInRootContent. |
| 110 IntPoint point_in_root_frame(event.AbsoluteLocation().X(), | 107 IntPoint point_in_root_frame(event.AbsoluteLocation().X(), |
| 111 event.AbsoluteLocation().Y()); | 108 event.AbsoluteLocation().Y()); |
| 112 if (view) | 109 if (plugin_parent) { |
| 113 point_in_root_frame = view->ContentsToRootFrame(point_in_root_frame); | 110 point_in_root_frame = |
| 111 plugin_parent->ContentsToRootFrame(point_in_root_frame); | |
| 112 } | |
| 114 web_event.SetPositionInScreen(event.screenX(), event.screenY()); | 113 web_event.SetPositionInScreen(event.screenX(), event.screenY()); |
| 115 IntPoint local_point = ConvertAbsoluteLocationForLayoutObjectInt( | 114 IntPoint local_point = ConvertAbsoluteLocationForLayoutObjectInt( |
| 116 event.AbsoluteLocation(), layout_item); | 115 event.AbsoluteLocation(), layout_item); |
| 117 web_event.SetPositionInWidget(local_point.X(), local_point.Y()); | 116 web_event.SetPositionInWidget(local_point.X(), local_point.Y()); |
| 118 } | 117 } |
| 119 | 118 |
| 120 unsigned ToWebInputEventModifierFrom(WebMouseEvent::Button button) { | 119 unsigned ToWebInputEventModifierFrom(WebMouseEvent::Button button) { |
| 121 if (button == WebMouseEvent::Button::kNoButton) | 120 if (button == WebMouseEvent::Button::kNoButton) |
| 122 return 0; | 121 return 0; |
| 123 | 122 |
| 124 unsigned web_mouse_button_to_platform_modifier[] = { | 123 unsigned web_mouse_button_to_platform_modifier[] = { |
| 125 WebInputEvent::kLeftButtonDown, WebInputEvent::kMiddleButtonDown, | 124 WebInputEvent::kLeftButtonDown, WebInputEvent::kMiddleButtonDown, |
| 126 WebInputEvent::kRightButtonDown, WebInputEvent::kBackButtonDown, | 125 WebInputEvent::kRightButtonDown, WebInputEvent::kBackButtonDown, |
| 127 WebInputEvent::kForwardButtonDown}; | 126 WebInputEvent::kForwardButtonDown}; |
| 128 | 127 |
| 129 return web_mouse_button_to_platform_modifier[static_cast<int>(button)]; | 128 return web_mouse_button_to_platform_modifier[static_cast<int>(button)]; |
| 130 } | 129 } |
| 131 | 130 |
| 132 } // namespace | 131 } // namespace |
| 133 | 132 |
| 134 WebMouseEvent TransformWebMouseEvent(FrameViewBase* frame_view_base, | 133 WebMouseEvent TransformWebMouseEvent(FrameView* frame_view, |
| 135 const WebMouseEvent& event) { | 134 const WebMouseEvent& event) { |
| 136 WebMouseEvent result = event; | 135 WebMouseEvent result = event; |
| 137 | 136 |
| 138 // TODO(dtapuska): Remove this translation. In the past blink has | 137 // TODO(dtapuska): Remove this translation. In the past blink has |
| 139 // converted leaves into moves and not known about leaves. It should | 138 // converted leaves into moves and not known about leaves. It should |
| 140 // be educated about them. crbug.com/686196 | 139 // be educated about them. crbug.com/686196 |
| 141 if (event.GetType() == WebInputEvent::kMouseEnter || | 140 if (event.GetType() == WebInputEvent::kMouseEnter || |
| 142 event.GetType() == WebInputEvent::kMouseLeave) { | 141 event.GetType() == WebInputEvent::kMouseLeave) { |
| 143 result.SetType(WebInputEvent::kMouseMove); | 142 result.SetType(WebInputEvent::kMouseMove); |
| 144 } | 143 } |
| 145 | 144 |
| 146 // TODO(dtapuska): Perhaps the event should be constructed correctly? | 145 // TODO(dtapuska): Perhaps the event should be constructed correctly? |
| 147 // crbug.com/686200 | 146 // crbug.com/686200 |
| 148 if (event.GetType() == WebInputEvent::kMouseUp) { | 147 if (event.GetType() == WebInputEvent::kMouseUp) { |
| 149 result.SetModifiers(event.GetModifiers() & | 148 result.SetModifiers(event.GetModifiers() & |
| 150 ~ToWebInputEventModifierFrom(event.button)); | 149 ~ToWebInputEventModifierFrom(event.button)); |
| 151 } | 150 } |
| 152 result.SetFrameScale(FrameScale(frame_view_base)); | 151 result.SetFrameScale(FrameScale(frame_view)); |
| 153 result.SetFrameTranslate(FrameTranslation(frame_view_base)); | 152 result.SetFrameTranslate(FrameTranslation(frame_view)); |
| 154 return result; | 153 return result; |
| 155 } | 154 } |
| 156 | 155 |
| 157 WebMouseWheelEvent TransformWebMouseWheelEvent( | 156 WebMouseWheelEvent TransformWebMouseWheelEvent( |
| 158 FrameViewBase* frame_view_base, | 157 FrameView* frame_view, |
| 159 const WebMouseWheelEvent& event) { | 158 const WebMouseWheelEvent& event) { |
| 160 WebMouseWheelEvent result = event; | 159 WebMouseWheelEvent result = event; |
| 161 result.SetFrameScale(FrameScale(frame_view_base)); | 160 result.SetFrameScale(FrameScale(frame_view)); |
| 162 result.SetFrameTranslate(FrameTranslation(frame_view_base)); | 161 result.SetFrameTranslate(FrameTranslation(frame_view)); |
| 163 return result; | 162 return result; |
| 164 } | 163 } |
| 165 | 164 |
| 166 WebGestureEvent TransformWebGestureEvent(FrameViewBase* frame_view_base, | 165 WebGestureEvent TransformWebGestureEvent(FrameView* frame_view, |
| 167 const WebGestureEvent& event) { | 166 const WebGestureEvent& event) { |
| 168 WebGestureEvent result = event; | 167 WebGestureEvent result = event; |
| 169 result.SetFrameScale(FrameScale(frame_view_base)); | 168 result.SetFrameScale(FrameScale(frame_view)); |
| 170 result.SetFrameTranslate(FrameTranslation(frame_view_base)); | 169 result.SetFrameTranslate(FrameTranslation(frame_view)); |
| 171 return result; | 170 return result; |
| 172 } | 171 } |
| 173 | 172 |
| 174 WebTouchEvent TransformWebTouchEvent(float frame_scale, | 173 WebTouchEvent TransformWebTouchEvent(float frame_scale, |
| 175 FloatPoint frame_translate, | 174 FloatPoint frame_translate, |
| 176 const WebTouchEvent& event) { | 175 const WebTouchEvent& event) { |
| 177 // frameScale is default initialized in debug builds to be 0. | 176 // frameScale is default initialized in debug builds to be 0. |
| 178 DCHECK_EQ(0, event.FrameScale()); | 177 DCHECK_EQ(0, event.FrameScale()); |
| 179 DCHECK_EQ(0, event.FrameTranslate().x); | 178 DCHECK_EQ(0, event.FrameTranslate().x); |
| 180 DCHECK_EQ(0, event.FrameTranslate().y); | 179 DCHECK_EQ(0, event.FrameTranslate().y); |
| 181 WebTouchEvent result = event; | 180 WebTouchEvent result = event; |
| 182 result.SetFrameScale(frame_scale); | 181 result.SetFrameScale(frame_scale); |
| 183 result.SetFrameTranslate(frame_translate); | 182 result.SetFrameTranslate(frame_translate); |
| 184 return result; | 183 return result; |
| 185 } | 184 } |
| 186 | 185 |
| 187 WebTouchEvent TransformWebTouchEvent(FrameViewBase* frame_view_base, | 186 WebTouchEvent TransformWebTouchEvent(FrameView* frame_view, |
| 188 const WebTouchEvent& event) { | 187 const WebTouchEvent& event) { |
| 189 return TransformWebTouchEvent(FrameScale(frame_view_base), | 188 return TransformWebTouchEvent(FrameScale(frame_view), |
| 190 FrameTranslation(frame_view_base), event); | 189 FrameTranslation(frame_view), event); |
| 191 } | 190 } |
| 192 | 191 |
| 193 WebMouseEventBuilder::WebMouseEventBuilder(const FrameViewBase* frame_view_base, | 192 WebMouseEventBuilder::WebMouseEventBuilder(const FrameView* plugin_parent, |
| 194 const LayoutItem layout_item, | 193 const LayoutItem layout_item, |
| 195 const MouseEvent& event) { | 194 const MouseEvent& event) { |
| 196 if (event.NativeEvent()) { | 195 if (event.NativeEvent()) { |
| 197 *static_cast<WebMouseEvent*>(this) = | 196 *static_cast<WebMouseEvent*>(this) = |
| 198 event.NativeEvent()->FlattenTransform(); | 197 event.NativeEvent()->FlattenTransform(); |
| 199 WebFloatPoint absolute_root_frame_location = PositionInRootFrame(); | 198 WebFloatPoint absolute_root_frame_location = PositionInRootFrame(); |
| 200 IntPoint local_point = RoundedIntPoint(layout_item.AbsoluteToLocal( | 199 IntPoint local_point = RoundedIntPoint(layout_item.AbsoluteToLocal( |
| 201 absolute_root_frame_location, kUseTransforms)); | 200 absolute_root_frame_location, kUseTransforms)); |
| 202 SetPositionInWidget(local_point.X(), local_point.Y()); | 201 SetPositionInWidget(local_point.X(), local_point.Y()); |
| 203 return; | 202 return; |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 217 type_ = WebInputEvent::kMouseDown; | 216 type_ = WebInputEvent::kMouseDown; |
| 218 else if (event.type() == EventTypeNames::mouseup) | 217 else if (event.type() == EventTypeNames::mouseup) |
| 219 type_ = WebInputEvent::kMouseUp; | 218 type_ = WebInputEvent::kMouseUp; |
| 220 else if (event.type() == EventTypeNames::contextmenu) | 219 else if (event.type() == EventTypeNames::contextmenu) |
| 221 type_ = WebInputEvent::kContextMenu; | 220 type_ = WebInputEvent::kContextMenu; |
| 222 else | 221 else |
| 223 return; // Skip all other mouse events. | 222 return; // Skip all other mouse events. |
| 224 | 223 |
| 225 time_stamp_seconds_ = event.PlatformTimeStamp().InSeconds(); | 224 time_stamp_seconds_ = event.PlatformTimeStamp().InSeconds(); |
| 226 modifiers_ = event.GetModifiers(); | 225 modifiers_ = event.GetModifiers(); |
| 227 UpdateWebMouseEventFromCoreMouseEvent(event, frame_view_base, layout_item, | 226 UpdateWebMouseEventFromCoreMouseEvent(event, plugin_parent, layout_item, |
| 228 *this); | 227 *this); |
| 229 | 228 |
| 230 switch (event.button()) { | 229 switch (event.button()) { |
| 231 case short(WebPointerProperties::Button::kLeft): | 230 case short(WebPointerProperties::Button::kLeft): |
| 232 button = WebMouseEvent::Button::kLeft; | 231 button = WebMouseEvent::Button::kLeft; |
| 233 break; | 232 break; |
| 234 case short(WebPointerProperties::Button::kMiddle): | 233 case short(WebPointerProperties::Button::kMiddle): |
| 235 button = WebMouseEvent::Button::kMiddle; | 234 button = WebMouseEvent::Button::kMiddle; |
| 236 break; | 235 break; |
| 237 case short(WebPointerProperties::Button::kRight): | 236 case short(WebPointerProperties::Button::kRight): |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 267 } | 266 } |
| 268 movement_x = event.movementX(); | 267 movement_x = event.movementX(); |
| 269 movement_y = event.movementY(); | 268 movement_y = event.movementY(); |
| 270 click_count = event.detail(); | 269 click_count = event.detail(); |
| 271 | 270 |
| 272 pointer_type = WebPointerProperties::PointerType::kMouse; | 271 pointer_type = WebPointerProperties::PointerType::kMouse; |
| 273 } | 272 } |
| 274 | 273 |
| 275 // Generate a synthetic WebMouseEvent given a TouchEvent (eg. for emulating a | 274 // Generate a synthetic WebMouseEvent given a TouchEvent (eg. for emulating a |
| 276 // mouse with touch input for plugins that don't support touch input). | 275 // mouse with touch input for plugins that don't support touch input). |
| 277 WebMouseEventBuilder::WebMouseEventBuilder(const FrameViewBase* frame_view_base, | 276 WebMouseEventBuilder::WebMouseEventBuilder(const FrameView* plugin_parent, |
| 278 const LayoutItem layout_item, | 277 const LayoutItem layout_item, |
| 279 const TouchEvent& event) { | 278 const TouchEvent& event) { |
| 280 if (!event.touches()) | 279 if (!event.touches()) |
| 281 return; | 280 return; |
| 282 if (event.touches()->length() != 1) { | 281 if (event.touches()->length() != 1) { |
| 283 if (event.touches()->length() || event.type() != EventTypeNames::touchend || | 282 if (event.touches()->length() || event.type() != EventTypeNames::touchend || |
| 284 !event.changedTouches() || event.changedTouches()->length() != 1) | 283 !event.changedTouches() || event.changedTouches()->length() != 1) |
| 285 return; | 284 return; |
| 286 } | 285 } |
| 287 | 286 |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 300 else | 299 else |
| 301 return; | 300 return; |
| 302 | 301 |
| 303 time_stamp_seconds_ = event.PlatformTimeStamp().InSeconds(); | 302 time_stamp_seconds_ = event.PlatformTimeStamp().InSeconds(); |
| 304 modifiers_ = event.GetModifiers(); | 303 modifiers_ = event.GetModifiers(); |
| 305 frame_scale_ = 1; | 304 frame_scale_ = 1; |
| 306 frame_translate_ = WebFloatPoint(); | 305 frame_translate_ = WebFloatPoint(); |
| 307 | 306 |
| 308 // The mouse event co-ordinates should be generated from the co-ordinates of | 307 // The mouse event co-ordinates should be generated from the co-ordinates of |
| 309 // the touch point. | 308 // the touch point. |
| 310 FrameView* view = ToFrameView(frame_view_base->Parent()); | 309 // FIXME: if plugin_parent == nullptr, pointInRootFrame will really be |
| 311 // FIXME: if view == nullptr, pointInRootFrame will really be | |
| 312 // pointInRootContent. | 310 // pointInRootContent. |
| 313 IntPoint point_in_root_frame = RoundedIntPoint(touch->AbsoluteLocation()); | 311 IntPoint point_in_root_frame = RoundedIntPoint(touch->AbsoluteLocation()); |
| 314 if (view) | 312 if (plugin_parent) { |
| 315 point_in_root_frame = view->ContentsToRootFrame(point_in_root_frame); | 313 point_in_root_frame = |
| 314 plugin_parent->ContentsToRootFrame(point_in_root_frame); | |
| 315 } | |
| 316 IntPoint screen_point = RoundedIntPoint(touch->ScreenLocation()); | 316 IntPoint screen_point = RoundedIntPoint(touch->ScreenLocation()); |
| 317 SetPositionInScreen(screen_point.X(), screen_point.Y()); | 317 SetPositionInScreen(screen_point.X(), screen_point.Y()); |
| 318 | 318 |
| 319 button = WebMouseEvent::Button::kLeft; | 319 button = WebMouseEvent::Button::kLeft; |
| 320 modifiers_ |= WebInputEvent::kLeftButtonDown; | 320 modifiers_ |= WebInputEvent::kLeftButtonDown; |
| 321 click_count = (type_ == kMouseDown || type_ == kMouseUp); | 321 click_count = (type_ == kMouseDown || type_ == kMouseUp); |
| 322 | 322 |
| 323 IntPoint local_point = ConvertAbsoluteLocationForLayoutObjectInt( | 323 IntPoint local_point = ConvertAbsoluteLocationForLayoutObjectInt( |
| 324 DoublePoint(touch->AbsoluteLocation()), layout_item); | 324 DoublePoint(touch->AbsoluteLocation()), layout_item); |
| 325 SetPositionInWidget(local_point.X(), local_point.Y()); | 325 SetPositionInWidget(local_point.X(), local_point.Y()); |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 346 type_ = WebInputEvent::kChar; | 346 type_ = WebInputEvent::kChar; |
| 347 else | 347 else |
| 348 return; // Skip all other keyboard events. | 348 return; // Skip all other keyboard events. |
| 349 | 349 |
| 350 modifiers_ = event.GetModifiers(); | 350 modifiers_ = event.GetModifiers(); |
| 351 time_stamp_seconds_ = event.PlatformTimeStamp().InSeconds(); | 351 time_stamp_seconds_ = event.PlatformTimeStamp().InSeconds(); |
| 352 windows_key_code = event.keyCode(); | 352 windows_key_code = event.keyCode(); |
| 353 } | 353 } |
| 354 | 354 |
| 355 Vector<WebMouseEvent> TransformWebMouseEventVector( | 355 Vector<WebMouseEvent> TransformWebMouseEventVector( |
| 356 FrameViewBase* frame_view_base, | 356 FrameView* frame_view, |
| 357 const std::vector<const WebInputEvent*>& coalesced_events) { | 357 const std::vector<const WebInputEvent*>& coalesced_events) { |
| 358 Vector<WebMouseEvent> result; | 358 Vector<WebMouseEvent> result; |
| 359 for (const auto& event : coalesced_events) { | 359 for (const auto& event : coalesced_events) { |
| 360 DCHECK(WebInputEvent::IsMouseEventType(event->GetType())); | 360 DCHECK(WebInputEvent::IsMouseEventType(event->GetType())); |
| 361 result.push_back(TransformWebMouseEvent( | 361 result.push_back(TransformWebMouseEvent( |
| 362 frame_view_base, static_cast<const WebMouseEvent&>(*event))); | 362 frame_view, static_cast<const WebMouseEvent&>(*event))); |
| 363 } | 363 } |
| 364 return result; | 364 return result; |
| 365 } | 365 } |
| 366 | 366 |
| 367 Vector<WebTouchEvent> TransformWebTouchEventVector( | 367 Vector<WebTouchEvent> TransformWebTouchEventVector( |
| 368 FrameViewBase* frame_view_base, | 368 FrameView* frame_view, |
| 369 const std::vector<const WebInputEvent*>& coalesced_events) { | 369 const std::vector<const WebInputEvent*>& coalesced_events) { |
| 370 float scale = FrameScale(frame_view_base); | 370 float scale = FrameScale(frame_view); |
| 371 FloatPoint translation = FrameTranslation(frame_view_base); | 371 FloatPoint translation = FrameTranslation(frame_view); |
| 372 Vector<WebTouchEvent> result; | 372 Vector<WebTouchEvent> result; |
| 373 for (const auto& event : coalesced_events) { | 373 for (const auto& event : coalesced_events) { |
| 374 DCHECK(WebInputEvent::IsTouchEventType(event->GetType())); | 374 DCHECK(WebInputEvent::IsTouchEventType(event->GetType())); |
| 375 result.push_back(TransformWebTouchEvent( | 375 result.push_back(TransformWebTouchEvent( |
| 376 scale, translation, static_cast<const WebTouchEvent&>(*event))); | 376 scale, translation, static_cast<const WebTouchEvent&>(*event))); |
| 377 } | 377 } |
| 378 return result; | 378 return result; |
| 379 } | 379 } |
| 380 | 380 |
| 381 } // namespace blink | 381 } // namespace blink |
| OLD | NEW |