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

Unified Diff: content/browser/renderer_host/input/web_input_event_builders_mac.mm

Issue 2573073003: Collapse the API surface on WebInputEvent via accessor functions. (Closed)
Patch Set: Fix nits Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/input/web_input_event_builders_mac.mm
diff --git a/content/browser/renderer_host/input/web_input_event_builders_mac.mm b/content/browser/renderer_host/input/web_input_event_builders_mac.mm
index 41a9d27b9d5356adfefeacef9ac57cbed7e64775..14754e24295c9131d224e65a1450fd55a8b075b9 100644
--- a/content/browser/renderer_host/input/web_input_event_builders_mac.mm
+++ b/content/browser/renderer_host/input/web_input_event_builders_mac.mm
@@ -146,7 +146,7 @@ bool IsSystemKeyEvent(const blink::WebKeyboardEvent& event) {
// cmd-b and and cmd-i are system wide key bindings that OS X doesn't
// handle for us, so the editor handles them.
- int modifiers = event.modifiers & blink::WebInputEvent::InputModifiers;
+ int modifiers = event.modifiers() & blink::WebInputEvent::InputModifiers;
if (modifiers == blink::WebInputEvent::MetaKey &&
event.windowsKeyCode == ui::VKEY_B)
return false;
@@ -154,7 +154,7 @@ bool IsSystemKeyEvent(const blink::WebKeyboardEvent& event) {
event.windowsKeyCode == ui::VKEY_I)
return false;
- return event.modifiers & blink::WebInputEvent::MetaKey;
+ return event.modifiers() & blink::WebInputEvent::MetaKey;
}
blink::WebMouseWheelEvent::Phase PhaseForNSEventPhase(
@@ -201,20 +201,19 @@ ui::DomKey DomKeyFromEvent(NSEvent* event) {
} // namespace
blink::WebKeyboardEvent WebKeyboardEventBuilder::Build(NSEvent* event) {
- blink::WebKeyboardEvent result;
-
- result.type = ui::IsKeyUpEvent(event) ? blink::WebInputEvent::KeyUp
- : blink::WebInputEvent::RawKeyDown;
-
- result.modifiers = ModifiersFromEvent(event);
+ ui::DomCode dom_code = ui::DomCodeFromNSEvent(event);
+ int modifiers =
+ ModifiersFromEvent(event) | ui::DomCodeToWebInputEventModifiers(dom_code);
if (([event type] != NSFlagsChanged) && [event isARepeat])
- result.modifiers |= blink::WebInputEvent::IsAutoRepeat;
+ modifiers |= blink::WebInputEvent::IsAutoRepeat;
- ui::DomCode dom_code = ui::DomCodeFromNSEvent(event);
+ blink::WebKeyboardEvent result(ui::IsKeyUpEvent(event)
+ ? blink::WebInputEvent::KeyUp
+ : blink::WebInputEvent::RawKeyDown,
+ modifiers, [event timestamp]);
result.windowsKeyCode =
ui::LocatedToNonLocatedKeyboardCode(ui::KeyboardCodeFromNSEvent(event));
- result.modifiers |= ui::DomCodeToWebInputEventModifiers(dom_code);
result.nativeKeyCode = [event keyCode];
result.domCode = static_cast<int>(dom_code);
result.domKey = DomKeyFromEvent(event);
@@ -246,7 +245,6 @@ blink::WebKeyboardEvent WebKeyboardEventBuilder::Build(NSEvent* event) {
} else
NOTIMPLEMENTED();
- result.timeStampSeconds = [event timestamp];
result.isSystemKey = IsSystemKeyEvent(result);
return result;
@@ -255,72 +253,71 @@ blink::WebKeyboardEvent WebKeyboardEventBuilder::Build(NSEvent* event) {
// WebMouseEvent --------------------------------------------------------------
blink::WebMouseEvent WebMouseEventBuilder::Build(NSEvent* event, NSView* view) {
- blink::WebMouseEvent result;
-
- result.clickCount = 0;
+ blink::WebInputEvent::Type event_type = blink::WebInputEvent::Type::Undefined;
+ int click_count = 0;
+ blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::NoButton;
NSEventType type = [event type];
switch (type) {
case NSMouseExited:
- result.type = blink::WebInputEvent::MouseLeave;
- result.button = blink::WebMouseEvent::Button::NoButton;
+ event_type = blink::WebInputEvent::MouseLeave;
break;
case NSLeftMouseDown:
- result.type = blink::WebInputEvent::MouseDown;
- result.clickCount = [event clickCount];
- result.button = blink::WebMouseEvent::Button::Left;
+ event_type = blink::WebInputEvent::MouseDown;
+ click_count = [event clickCount];
+ button = blink::WebMouseEvent::Button::Left;
break;
case NSOtherMouseDown:
- result.type = blink::WebInputEvent::MouseDown;
- result.clickCount = [event clickCount];
- result.button = blink::WebMouseEvent::Button::Middle;
+ event_type = blink::WebInputEvent::MouseDown;
+ click_count = [event clickCount];
+ button = blink::WebMouseEvent::Button::Middle;
break;
case NSRightMouseDown:
- result.type = blink::WebInputEvent::MouseDown;
- result.clickCount = [event clickCount];
- result.button = blink::WebMouseEvent::Button::Right;
+ event_type = blink::WebInputEvent::MouseDown;
+ click_count = [event clickCount];
+ button = blink::WebMouseEvent::Button::Right;
break;
case NSLeftMouseUp:
- result.type = blink::WebInputEvent::MouseUp;
- result.clickCount = [event clickCount];
- result.button = blink::WebMouseEvent::Button::Left;
+ event_type = blink::WebInputEvent::MouseUp;
+ click_count = [event clickCount];
+ button = blink::WebMouseEvent::Button::Left;
break;
case NSOtherMouseUp:
- result.type = blink::WebInputEvent::MouseUp;
- result.clickCount = [event clickCount];
- result.button = blink::WebMouseEvent::Button::Middle;
+ event_type = blink::WebInputEvent::MouseUp;
+ click_count = [event clickCount];
+ button = blink::WebMouseEvent::Button::Middle;
break;
case NSRightMouseUp:
- result.type = blink::WebInputEvent::MouseUp;
- result.clickCount = [event clickCount];
- result.button = blink::WebMouseEvent::Button::Right;
+ event_type = blink::WebInputEvent::MouseUp;
+ click_count = [event clickCount];
+ button = blink::WebMouseEvent::Button::Right;
break;
case NSMouseMoved:
case NSMouseEntered:
- result.type = blink::WebInputEvent::MouseMove;
+ event_type = blink::WebInputEvent::MouseMove;
break;
case NSLeftMouseDragged:
- result.type = blink::WebInputEvent::MouseMove;
- result.button = blink::WebMouseEvent::Button::Left;
+ event_type = blink::WebInputEvent::MouseMove;
+ button = blink::WebMouseEvent::Button::Left;
break;
case NSOtherMouseDragged:
- result.type = blink::WebInputEvent::MouseMove;
- result.button = blink::WebMouseEvent::Button::Middle;
+ event_type = blink::WebInputEvent::MouseMove;
+ button = blink::WebMouseEvent::Button::Middle;
break;
case NSRightMouseDragged:
- result.type = blink::WebInputEvent::MouseMove;
- result.button = blink::WebMouseEvent::Button::Right;
+ event_type = blink::WebInputEvent::MouseMove;
+ button = blink::WebMouseEvent::Button::Right;
break;
default:
NOTIMPLEMENTED();
}
+ blink::WebMouseEvent result(event_type, ModifiersFromEvent(event),
+ [event timestamp]);
+ result.clickCount = click_count;
+ result.button = button;
SetWebEventLocationFromEventInView(&result, event, view);
- result.modifiers = ModifiersFromEvent(event);
-
- result.timeStampSeconds = [event timestamp];
-
// For NSMouseExited and NSMouseEntered, they do not have a subtype. Styluses
// and mouses share the same cursor, so we will set their pointerType as
// Unknown for now.
@@ -356,13 +353,11 @@ blink::WebMouseEvent WebMouseEventBuilder::Build(NSEvent* event, NSView* view) {
blink::WebMouseWheelEvent WebMouseWheelEventBuilder::Build(
NSEvent* event,
NSView* view) {
- blink::WebMouseWheelEvent result;
-
- result.type = blink::WebInputEvent::MouseWheel;
+ blink::WebMouseWheelEvent result(blink::WebInputEvent::MouseWheel,
+ ModifiersFromEvent(event),
+ [event timestamp]);
result.button = blink::WebMouseEvent::Button::NoButton;
- result.modifiers = ModifiersFromEvent(event);
-
SetWebEventLocationFromEventInView(&result, event, view);
// Of Mice and Men
@@ -495,8 +490,6 @@ blink::WebMouseWheelEvent WebMouseWheelEventBuilder::Build(
CGEventGetIntegerValueField(cg_event, kCGScrollWheelEventDeltaAxis2);
}
- result.timeStampSeconds = [event timestamp];
-
result.phase = PhaseForEvent(event);
result.momentumPhase = MomentumPhaseForEvent(event);
@@ -516,13 +509,13 @@ blink::WebGestureEvent WebGestureEventBuilder::Build(NSEvent* event,
result.globalX = temp.globalX;
result.globalY = temp.globalY;
- result.modifiers = ModifiersFromEvent(event);
- result.timeStampSeconds = [event timestamp];
+ result.setModifiers(ModifiersFromEvent(event));
+ result.setTimeStampSeconds([event timestamp]);
result.sourceDevice = blink::WebGestureDeviceTouchpad;
switch ([event type]) {
case NSEventTypeMagnify:
- result.type = blink::WebInputEvent::GesturePinchUpdate;
+ result.setType(blink::WebInputEvent::GesturePinchUpdate);
result.data.pinchUpdate.scale = [event magnification] + 1.0;
break;
case NSEventTypeSmartMagnify:
@@ -530,7 +523,7 @@ blink::WebGestureEvent WebGestureEventBuilder::Build(NSEvent* event,
// GestureDoubleTap, because the effect is similar to single-finger
// double-tap zoom on mobile platforms. Note that tapCount is set to 1
// because the gesture type already encodes that information.
- result.type = blink::WebInputEvent::GestureDoubleTap;
+ result.setType(blink::WebInputEvent::GestureDoubleTap);
result.data.tap.tapCount = 1;
break;
case NSEventTypeBeginGesture:
@@ -538,11 +531,9 @@ blink::WebGestureEvent WebGestureEventBuilder::Build(NSEvent* event,
// The specific type of a gesture is not defined when the gesture begin
// and end NSEvents come in. Leave them undefined. The caller will need
// to specify them when the gesture is differentiated.
- result.type = blink::WebInputEvent::Undefined;
break;
default:
NOTIMPLEMENTED();
- result.type = blink::WebInputEvent::Undefined;
}
return result;

Powered by Google App Engine
This is Rietveld 408576698