| Index: third_party/WebKit/Source/core/input/EventHandler.cpp
|
| diff --git a/third_party/WebKit/Source/core/input/EventHandler.cpp b/third_party/WebKit/Source/core/input/EventHandler.cpp
|
| index 6b5ec35a4eeb7451eeba26a2ae9023d32c18b2cf..c0a63ba3b675caa9e556e305d21434f938810d9d 100644
|
| --- a/third_party/WebKit/Source/core/input/EventHandler.cpp
|
| +++ b/third_party/WebKit/Source/core/input/EventHandler.cpp
|
| @@ -1790,22 +1790,23 @@ WebInputEventResult EventHandler::handleWheelEvent(const PlatformWheelEvent& eve
|
| if (node && node->isTextNode())
|
| node = FlatTreeTraversal::parent(*node);
|
|
|
| - bool isOverWidget = result.isOverWidget();
|
| -
|
| - if (node) {
|
| - // Figure out which view to send the event to.
|
| - LayoutObject* target = node->layoutObject();
|
| -
|
| - if (isOverWidget && target && target->isLayoutPart()) {
|
| - if (Widget* widget = toLayoutPart(target)->widget()) {
|
| - WebInputEventResult result = passWheelEventToWidget(event, *widget);
|
| - if (result != WebInputEventResult::NotHandled) {
|
| - setFrameWasScrolledByUser();
|
| - return result;
|
| - }
|
| - }
|
| + bool sendDOMEvent = true;
|
| + LocalFrame* subframe = subframeForTargetNode(node);
|
| + if (subframe) {
|
| + WebInputEventResult result = subframe->eventHandler().handleWheelEvent(event);
|
| + if (result != WebInputEventResult::NotHandled) {
|
| + setFrameWasScrolledByUser();
|
| + return result;
|
| }
|
| + // TODO(dtapuska): Remove this once wheel gesture scroll has
|
| + // been enabled everywhere; as we can just return early.
|
| + // http://crbug.com/568183
|
| + // Don't propagate the DOM event into the parent iframe
|
| + // but do dispatch the scroll event.
|
| + sendDOMEvent = false;
|
| + }
|
|
|
| + if (node && sendDOMEvent) {
|
| RefPtrWillBeRawPtr<Event> domEvent = WheelEvent::create(event, node->document().domWindow());
|
| DispatchEventResult domEventResult = node->dispatchEvent(domEvent);
|
| if (domEventResult != DispatchEventResult::NotCanceled) {
|
| @@ -3949,16 +3950,6 @@ WebInputEventResult EventHandler::passMouseReleaseEventToSubframe(MouseEventWith
|
| return WebInputEventResult::HandledSystem;
|
| }
|
|
|
| -WebInputEventResult EventHandler::passWheelEventToWidget(const PlatformWheelEvent& wheelEvent, Widget& widget)
|
| -{
|
| - // If not a FrameView, then probably a plugin widget. Those will receive
|
| - // the event via an EventTargetNode dispatch when this returns false.
|
| - if (!widget.isFrameView())
|
| - return WebInputEventResult::NotHandled;
|
| -
|
| - return toFrameView(&widget)->frame().eventHandler().handleWheelEvent(wheelEvent);
|
| -}
|
| -
|
| DataTransfer* EventHandler::createDraggingDataTransfer() const
|
| {
|
| return DataTransfer::create(DataTransfer::DragAndDrop, DataTransferWritable, DataObject::create());
|
|
|