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

Side by Side Diff: content/browser/renderer_host/web_input_event_aura.cc

Issue 1266643002: content: Populate WebPointerProperties with stylus details from ui::MouseEvent (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@experimental-pointer-events
Patch Set: Fix windows floating point conversion Created 5 years, 3 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/browser/renderer_host/web_input_event_aura.h" 5 #include "content/browser/renderer_host/web_input_event_aura.h"
6 6
7 #include "content/browser/renderer_host/input/web_input_event_util.h" 7 #include "content/browser/renderer_host/input/web_input_event_util.h"
8 #include "content/browser/renderer_host/ui_events_helper.h" 8 #include "content/browser/renderer_host/ui_events_helper.h"
9 #include "ui/aura/client/screen_position_client.h" 9 #include "ui/aura/client/screen_position_client.h"
10 #include "ui/aura/window.h" 10 #include "ui/aura/window.h"
(...skipping 30 matching lines...) Expand all
41 case ui::DomKeyLocation::RIGHT: 41 case ui::DomKeyLocation::RIGHT:
42 return blink::WebInputEvent::IsRight; 42 return blink::WebInputEvent::IsRight;
43 case ui::DomKeyLocation::NUMPAD: 43 case ui::DomKeyLocation::NUMPAD:
44 return blink::WebInputEvent::IsKeyPad; 44 return blink::WebInputEvent::IsKeyPad;
45 case ui::DomKeyLocation::STANDARD: 45 case ui::DomKeyLocation::STANDARD:
46 break; 46 break;
47 } 47 }
48 return static_cast<blink::WebInputEvent::Modifiers>(0); 48 return static_cast<blink::WebInputEvent::Modifiers>(0);
49 } 49 }
50 50
51 blink::WebPointerProperties::PointerType EventPointerTypeToWebPointerType(
52 ui::EventPointerType pointer_type) {
53 switch (pointer_type) {
54 case ui::EventPointerType::POINTER_TYPE_UNKNOWN:
55 return blink::WebPointerProperties::PointerType::PointerTypeUnknown;
56 case ui::EventPointerType::POINTER_TYPE_MOUSE:
57 return blink::WebPointerProperties::PointerType::PointerTypeMouse;
58 case ui::EventPointerType::POINTER_TYPE_PEN:
59 return blink::WebPointerProperties::PointerType::PointerTypePen;
60 case ui::EventPointerType::POINTER_TYPE_TOUCH:
61 return blink::WebPointerProperties::PointerType::PointerTypeTouch;
62 }
63 NOTREACHED() << "Unexpected EventPointerType";
64 return blink::WebPointerProperties::PointerType::PointerTypeUnknown;
65 }
66
51 } // namespace 67 } // namespace
52 68
53 #if defined(OS_WIN) 69 #if defined(OS_WIN)
54 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( 70 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent(
55 const base::NativeEvent& native_event); 71 const base::NativeEvent& native_event);
56 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( 72 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent(
57 const base::NativeEvent& native_event); 73 const base::NativeEvent& native_event);
58 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( 74 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent(
59 const base::NativeEvent& native_event); 75 const base::NativeEvent& native_event);
60 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent( 76 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent(
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 default: 164 default:
149 NOTREACHED() << "Unknown gesture type: " << event.type(); 165 NOTREACHED() << "Unknown gesture type: " << event.type();
150 } 166 }
151 167
152 webkit_event.sourceDevice = blink::WebGestureDeviceTouchpad; 168 webkit_event.sourceDevice = blink::WebGestureDeviceTouchpad;
153 webkit_event.modifiers = ui::EventFlagsToWebEventModifiers(event.flags()); 169 webkit_event.modifiers = ui::EventFlagsToWebEventModifiers(event.flags());
154 webkit_event.timeStampSeconds = event.time_stamp().InSecondsF(); 170 webkit_event.timeStampSeconds = event.time_stamp().InSecondsF();
155 return webkit_event; 171 return webkit_event;
156 } 172 }
157 173
158 blink::WebMouseEvent MakeWebMouseEventFromAuraEvent(
159 const ui::MouseEvent& event);
160 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent(
161 const ui::MouseWheelEvent& event);
162
163 // General approach: 174 // General approach:
164 // 175 //
165 // ui::Event only carries a subset of possible event data provided to Aura by 176 // ui::Event only carries a subset of possible event data provided to Aura by
166 // the host platform. WebKit utilizes a larger subset of that information than 177 // the host platform. WebKit utilizes a larger subset of that information than
167 // Aura itself. WebKit includes some built in cracking functionality that we 178 // Aura itself. WebKit includes some built in cracking functionality that we
168 // rely on to obtain this information cleanly and consistently. 179 // rely on to obtain this information cleanly and consistently.
169 // 180 //
170 // The only place where an ui::Event's data differs from what the underlying 181 // The only place where an ui::Event's data differs from what the underlying
171 // base::NativeEvent would provide is position data, since we would like to 182 // base::NativeEvent would provide is position data, since we would like to
172 // provide coordinates relative to the aura::Window that is hosting the 183 // provide coordinates relative to the aura::Window that is hosting the
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 case ui::ET_MOUSE_EXITED: 383 case ui::ET_MOUSE_EXITED:
373 case ui::ET_MOUSE_MOVED: 384 case ui::ET_MOUSE_MOVED:
374 case ui::ET_MOUSE_DRAGGED: 385 case ui::ET_MOUSE_DRAGGED:
375 webkit_event.type = blink::WebInputEvent::MouseMove; 386 webkit_event.type = blink::WebInputEvent::MouseMove;
376 break; 387 break;
377 default: 388 default:
378 NOTIMPLEMENTED() << "Received unexpected event: " << event.type(); 389 NOTIMPLEMENTED() << "Received unexpected event: " << event.type();
379 break; 390 break;
380 } 391 }
381 392
393 webkit_event.tiltX = roundf(event.pointer_details().tilt_x());
394 webkit_event.tiltY = roundf(event.pointer_details().tilt_y());
395 webkit_event.force = event.pointer_details().force();
396 webkit_event.pointerType =
397 EventPointerTypeToWebPointerType(event.pointer_details().pointer_type());
398
382 return webkit_event; 399 return webkit_event;
383 } 400 }
384 401
385 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( 402 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent(
386 const ui::MouseWheelEvent& event) { 403 const ui::MouseWheelEvent& event) {
387 blink::WebMouseWheelEvent webkit_event; 404 blink::WebMouseWheelEvent webkit_event;
388 405
389 webkit_event.type = blink::WebInputEvent::MouseWheel; 406 webkit_event.type = blink::WebInputEvent::MouseWheel;
390 webkit_event.button = blink::WebMouseEvent::ButtonNone; 407 webkit_event.button = blink::WebMouseEvent::ButtonNone;
391 webkit_event.modifiers = ui::EventFlagsToWebEventModifiers(event.flags()); 408 webkit_event.modifiers = ui::EventFlagsToWebEventModifiers(event.flags());
392 webkit_event.timeStampSeconds = event.time_stamp().InSecondsF(); 409 webkit_event.timeStampSeconds = event.time_stamp().InSecondsF();
393 410
394 if ((event.flags() & ui::EF_SHIFT_DOWN) != 0 && event.x_offset() == 0) { 411 if ((event.flags() & ui::EF_SHIFT_DOWN) != 0 && event.x_offset() == 0) {
395 webkit_event.deltaX = event.y_offset(); 412 webkit_event.deltaX = event.y_offset();
396 webkit_event.deltaY = 0; 413 webkit_event.deltaY = 0;
397 } else { 414 } else {
398 webkit_event.deltaX = event.x_offset(); 415 webkit_event.deltaX = event.x_offset();
399 webkit_event.deltaY = event.y_offset(); 416 webkit_event.deltaY = event.y_offset();
400 } 417 }
401 418
402 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; 419 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick;
403 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; 420 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick;
404 421
422 webkit_event.tiltX = roundf(event.pointer_details().tilt_x());
423 webkit_event.tiltY = roundf(event.pointer_details().tilt_y());
424 webkit_event.force = event.pointer_details().force();
425 webkit_event.pointerType =
426 EventPointerTypeToWebPointerType(event.pointer_details().pointer_type());
427
405 return webkit_event; 428 return webkit_event;
406 } 429 }
407 430
408 } // namespace content 431 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698