Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: third_party/WebKit/Source/web/WebInputEventConversion.cpp

Issue 2806223002: Use FrameView rather than FrameViewBase for WebInputEventConversion (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/WebInputEventConversion.h ('k') | third_party/WebKit/Source/web/WebPluginContainerImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698