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

Side by Side Diff: ui/events/blink/web_input_event.cc

Issue 2782893002: WebMouseEvent coordinates are now fractional & private (Closed)
Patch Set: Rebased, fixed a comment in web_input_event_builders_mac.mm 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 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/events/blink/web_input_event.h" 5 #include "ui/events/blink/web_input_event.h"
6 6
7 #include "ui/events/base_event_utils.h" 7 #include "ui/events/base_event_utils.h"
8 #include "ui/events/blink/blink_event_util.h" 8 #include "ui/events/blink/blink_event_util.h"
9 #include "ui/events/blink/blink_features.h" 9 #include "ui/events/blink/blink_features.h"
10 #include "ui/events/event.h" 10 #include "ui/events/event.h"
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 ? MakeUntranslatedWebMouseEventFromNativeEvent( 228 ? MakeUntranslatedWebMouseEventFromNativeEvent(
229 event.native_event(), event.time_stamp(), 229 event.native_event(), event.time_stamp(),
230 EventPointerTypeToWebPointerType( 230 EventPointerTypeToWebPointerType(
231 event.pointer_details().pointer_type)) 231 event.pointer_details().pointer_type))
232 : MakeWebMouseEventFromUiEvent(event); 232 : MakeWebMouseEventFromUiEvent(event);
233 #else 233 #else
234 MakeWebMouseEventFromUiEvent(event); 234 MakeWebMouseEventFromUiEvent(event);
235 #endif 235 #endif
236 // Replace the event's coordinate fields with translated position data from 236 // Replace the event's coordinate fields with translated position data from
237 // |event|. 237 // |event|.
238 webkit_event.x = event.x(); 238 webkit_event.setPositionInWidget(event.x(), event.y());
239 webkit_event.y = event.y();
240 239
241 #if defined(OS_WIN) 240 #if defined(OS_WIN)
242 if (event.native_event().message) 241 if (event.native_event().message)
243 return webkit_event; 242 return webkit_event;
244 #endif 243 #endif
245 244
246 const gfx::Point screen_point = 245 const gfx::Point screen_point =
247 GetScreenLocationFromEvent(event, screen_location_callback); 246 GetScreenLocationFromEvent(event, screen_location_callback);
248 webkit_event.globalX = screen_point.x(); 247 webkit_event.setPositionInScreen(screen_point.x(), screen_point.y());
249 webkit_event.globalY = screen_point.y();
250 248
251 return webkit_event; 249 return webkit_event;
252 } 250 }
253 251
254 blink::WebMouseWheelEvent MakeWebMouseWheelEvent( 252 blink::WebMouseWheelEvent MakeWebMouseWheelEvent(
255 const MouseWheelEvent& event, 253 const MouseWheelEvent& event,
256 const base::Callback<gfx::Point(const LocatedEvent& event)>& 254 const base::Callback<gfx::Point(const LocatedEvent& event)>&
257 screen_location_callback) { 255 screen_location_callback) {
258 #if defined(OS_WIN) 256 #if defined(OS_WIN)
259 // Construct an untranslated event from the platform event data. 257 // Construct an untranslated event from the platform event data.
260 blink::WebMouseWheelEvent webkit_event = 258 blink::WebMouseWheelEvent webkit_event =
261 event.native_event().message 259 event.native_event().message
262 ? MakeUntranslatedWebMouseWheelEventFromNativeEvent( 260 ? MakeUntranslatedWebMouseWheelEventFromNativeEvent(
263 event.native_event(), event.time_stamp(), 261 event.native_event(), event.time_stamp(),
264 EventPointerTypeToWebPointerType( 262 EventPointerTypeToWebPointerType(
265 event.pointer_details().pointer_type)) 263 event.pointer_details().pointer_type))
266 : MakeWebMouseWheelEventFromUiEvent(event); 264 : MakeWebMouseWheelEventFromUiEvent(event);
267 #else 265 #else
268 blink::WebMouseWheelEvent webkit_event = 266 blink::WebMouseWheelEvent webkit_event =
269 MakeWebMouseWheelEventFromUiEvent(event); 267 MakeWebMouseWheelEventFromUiEvent(event);
270 #endif 268 #endif
271 269
272 // Replace the event's coordinate fields with translated position data from 270 // Replace the event's coordinate fields with translated position data from
273 // |event|. 271 // |event|.
274 webkit_event.x = event.x(); 272 webkit_event.setPositionInWidget(event.x(), event.y());
275 webkit_event.y = event.y();
276 273
277 const gfx::Point screen_point = 274 const gfx::Point screen_point =
278 GetScreenLocationFromEvent(event, screen_location_callback); 275 GetScreenLocationFromEvent(event, screen_location_callback);
279 webkit_event.globalX = screen_point.x(); 276 webkit_event.setPositionInScreen(screen_point.x(), screen_point.y());
280 webkit_event.globalY = screen_point.y();
281 277
282 return webkit_event; 278 return webkit_event;
283 } 279 }
284 280
285 blink::WebMouseWheelEvent MakeWebMouseWheelEvent( 281 blink::WebMouseWheelEvent MakeWebMouseWheelEvent(
286 const ScrollEvent& event, 282 const ScrollEvent& event,
287 const base::Callback<gfx::Point(const LocatedEvent& event)>& 283 const base::Callback<gfx::Point(const LocatedEvent& event)>&
288 screen_location_callback) { 284 screen_location_callback) {
289 #if defined(OS_WIN) 285 #if defined(OS_WIN)
290 // Construct an untranslated event from the platform event data. 286 // Construct an untranslated event from the platform event data.
291 blink::WebMouseWheelEvent webkit_event = 287 blink::WebMouseWheelEvent webkit_event =
292 event.native_event().message 288 event.native_event().message
293 ? MakeUntranslatedWebMouseWheelEventFromNativeEvent( 289 ? MakeUntranslatedWebMouseWheelEventFromNativeEvent(
294 event.native_event(), event.time_stamp(), 290 event.native_event(), event.time_stamp(),
295 EventPointerTypeToWebPointerType( 291 EventPointerTypeToWebPointerType(
296 event.pointer_details().pointer_type)) 292 event.pointer_details().pointer_type))
297 : MakeWebMouseWheelEventFromUiEvent(event); 293 : MakeWebMouseWheelEventFromUiEvent(event);
298 #else 294 #else
299 blink::WebMouseWheelEvent webkit_event = 295 blink::WebMouseWheelEvent webkit_event =
300 MakeWebMouseWheelEventFromUiEvent(event); 296 MakeWebMouseWheelEventFromUiEvent(event);
301 #endif 297 #endif
302 298
303 // Replace the event's coordinate fields with translated position data from 299 // Replace the event's coordinate fields with translated position data from
304 // |event|. 300 // |event|.
305 webkit_event.x = event.x(); 301 webkit_event.setPositionInWidget(event.x(), event.y());
306 webkit_event.y = event.y();
307 302
308 const gfx::Point screen_point = 303 const gfx::Point screen_point =
309 GetScreenLocationFromEvent(event, screen_location_callback); 304 GetScreenLocationFromEvent(event, screen_location_callback);
310 webkit_event.globalX = screen_point.x(); 305 webkit_event.setPositionInScreen(screen_point.x(), screen_point.y());
311 webkit_event.globalY = screen_point.y();
312 306
313 return webkit_event; 307 return webkit_event;
314 } 308 }
315 309
316 blink::WebKeyboardEvent MakeWebKeyboardEvent(const KeyEvent& event) { 310 blink::WebKeyboardEvent MakeWebKeyboardEvent(const KeyEvent& event) {
317 // Windows can figure out whether or not to construct a RawKeyDown or a Char 311 // Windows can figure out whether or not to construct a RawKeyDown or a Char
318 // WebInputEvent based on the type of message carried in 312 // WebInputEvent based on the type of message carried in
319 // event.native_event(). X11 is not so fortunate, there is no separate 313 // event.native_event(). X11 is not so fortunate, there is no separate
320 // translated event type, so DesktopHostLinux sends an extra KeyEvent with 314 // translated event type, so DesktopHostLinux sends an extra KeyEvent with
321 // is_char() == true. We need to pass the KeyEvent to the X11 function 315 // is_char() == true. We need to pass the KeyEvent to the X11 function
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 webkit_event.tiltX = roundf(event.pointer_details().tilt_x); 472 webkit_event.tiltX = roundf(event.pointer_details().tilt_x);
479 webkit_event.tiltY = roundf(event.pointer_details().tilt_y); 473 webkit_event.tiltY = roundf(event.pointer_details().tilt_y);
480 webkit_event.force = event.pointer_details().force; 474 webkit_event.force = event.pointer_details().force;
481 webkit_event.pointerType = 475 webkit_event.pointerType =
482 EventPointerTypeToWebPointerType(event.pointer_details().pointer_type); 476 EventPointerTypeToWebPointerType(event.pointer_details().pointer_type);
483 477
484 return webkit_event; 478 return webkit_event;
485 } 479 }
486 480
487 } // namespace ui 481 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/blink/input_handler_proxy_unittest.cc ('k') | ui/events/blink/web_input_event_builders_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698