Index: Source/web/WebInputEventConversion.cpp |
diff --git a/Source/web/WebInputEventConversion.cpp b/Source/web/WebInputEventConversion.cpp |
index 362b99b254876736cbb944ee74d105b86e6a2732..b69412bee92ea14d33fe024220fdad787a923b25 100644 |
--- a/Source/web/WebInputEventConversion.cpp |
+++ b/Source/web/WebInputEventConversion.cpp |
@@ -484,12 +484,15 @@ static IntPoint convertAbsoluteLocationForRenderObject(const LayoutPoint& locati |
return roundedIntPoint(convertAbsoluteLocationForRenderObjectFloat(location, renderObject)); |
} |
-static void updateWebMouseEventFromCoreMouseEvent(const MouseRelatedEvent& event, const Widget& widget, const RenderObject& renderObject, WebMouseEvent& webEvent) |
+// FIXME: Change |widget| to const Widget& after RemoteFrames get |
+// RemoteFrameViews. When this happens, check widget.isScrollView(), because |
+// RemoteFrameView is a Widget but not a ScrollView. |
+static void updateWebMouseEventFromCoreMouseEvent(const MouseRelatedEvent& event, const Widget* widget, const RenderObject& renderObject, WebMouseEvent& webEvent) |
{ |
webEvent.timeStampSeconds = event.timeStamp() / millisPerSecond; |
webEvent.modifiers = getWebInputModifiers(event); |
- ScrollView* view = toScrollView(widget.parent()); |
+ ScrollView* view = widget ? toScrollView(widget->parent()) : 0; |
IntPoint windowPoint = IntPoint(event.absoluteLocation().x(), event.absoluteLocation().y()); |
if (view) |
windowPoint = view->contentsToWindow(windowPoint); |
@@ -519,7 +522,7 @@ WebMouseEventBuilder::WebMouseEventBuilder(const Widget* widget, const RenderObj |
else |
return; // Skip all other mouse events. |
- updateWebMouseEventFromCoreMouseEvent(event, *widget, *renderObject, *this); |
+ updateWebMouseEventFromCoreMouseEvent(event, widget, *renderObject, *this); |
switch (event.button()) { |
case LeftButton: |
@@ -649,7 +652,7 @@ WebMouseWheelEventBuilder::WebMouseWheelEventBuilder(const Widget* widget, const |
if (event.type() != EventTypeNames::wheel && event.type() != EventTypeNames::mousewheel) |
return; |
type = WebInputEvent::MouseWheel; |
- updateWebMouseEventFromCoreMouseEvent(event, *widget, *renderObject, *this); |
+ updateWebMouseEventFromCoreMouseEvent(event, widget, *renderObject, *this); |
deltaX = -event.deltaX(); |
deltaY = -event.deltaY(); |
wheelTicksX = event.ticksX(); |