| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv
ed. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv
ed. |
| 3 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 3 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 4 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) | 4 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 1386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1397 { | 1397 { |
| 1398 ASSERT(m_frame); | 1398 ASSERT(m_frame); |
| 1399 ASSERT(m_frame->document()); | 1399 ASSERT(m_frame->document()); |
| 1400 | 1400 |
| 1401 return m_frame->document()->prepareMouseEvent(request, contentPointFromRootF
rame(m_frame, mev.position()), mev); | 1401 return m_frame->document()->prepareMouseEvent(request, contentPointFromRootF
rame(m_frame, mev.position()), mev); |
| 1402 } | 1402 } |
| 1403 | 1403 |
| 1404 Node* EventHandler::updateMouseEventTargetNode(Node* targetNode, | 1404 Node* EventHandler::updateMouseEventTargetNode(Node* targetNode, |
| 1405 const PlatformMouseEvent& mouseEvent) | 1405 const PlatformMouseEvent& mouseEvent) |
| 1406 { | 1406 { |
| 1407 Node* result = targetNode; | 1407 Node* newNodeUnderMouse = targetNode; |
| 1408 | 1408 |
| 1409 // If we're capturing, we always go right to that node. | 1409 // If we're capturing, we always go right to that node. |
| 1410 if (m_capturingMouseEventsNode) { | 1410 if (EventTarget* mousePointerCapturingNode = m_pointerEventManager.getMouseC
apturingNode()) { |
| 1411 result = m_capturingMouseEventsNode.get(); | 1411 newNodeUnderMouse = mousePointerCapturingNode->toNode(); |
| 1412 DCHECK(newNodeUnderMouse); |
| 1413 } else if (m_capturingMouseEventsNode) { |
| 1414 newNodeUnderMouse = m_capturingMouseEventsNode.get(); |
| 1412 } else { | 1415 } else { |
| 1413 // If the target node is a text node, dispatch on the parent node - rdar
://4196646 | 1416 // If the target node is a text node, dispatch on the parent node - rdar
://4196646 |
| 1414 if (result && result->isTextNode()) | 1417 if (newNodeUnderMouse && newNodeUnderMouse->isTextNode()) |
| 1415 result = FlatTreeTraversal::parent(*result); | 1418 newNodeUnderMouse = FlatTreeTraversal::parent(*newNodeUnderMouse); |
| 1416 } | 1419 } |
| 1417 Node* lastNodeUnderMouse = m_nodeUnderMouse; | 1420 Node* lastNodeUnderMouse = m_nodeUnderMouse; |
| 1418 m_nodeUnderMouse = result; | 1421 m_nodeUnderMouse = newNodeUnderMouse; |
| 1419 | 1422 |
| 1420 PaintLayer* layerForLastNode = layerForNode(lastNodeUnderMouse); | 1423 PaintLayer* layerForLastNode = layerForNode(lastNodeUnderMouse); |
| 1421 PaintLayer* layerForNodeUnderMouse = layerForNode(m_nodeUnderMouse.get()); | 1424 PaintLayer* layerForNodeUnderMouse = layerForNode(m_nodeUnderMouse.get()); |
| 1422 Page* page = m_frame->page(); | 1425 Page* page = m_frame->page(); |
| 1423 | 1426 |
| 1424 if (lastNodeUnderMouse && (!m_nodeUnderMouse || m_nodeUnderMouse->document()
!= m_frame->document())) { | 1427 if (lastNodeUnderMouse && (!m_nodeUnderMouse || m_nodeUnderMouse->document()
!= m_frame->document())) { |
| 1425 // The mouse has moved between frames. | 1428 // The mouse has moved between frames. |
| 1426 if (LocalFrame* frame = lastNodeUnderMouse->document().frame()) { | 1429 if (LocalFrame* frame = lastNodeUnderMouse->document().frame()) { |
| 1427 if (FrameView* frameView = frame->view()) | 1430 if (FrameView* frameView = frame->view()) |
| 1428 frameView->mouseExitedContentArea(); | 1431 frameView->mouseExitedContentArea(); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1498 { | 1501 { |
| 1499 ASSERT(mouseEventType == EventTypeNames::mousedown | 1502 ASSERT(mouseEventType == EventTypeNames::mousedown |
| 1500 || mouseEventType == EventTypeNames::mousemove | 1503 || mouseEventType == EventTypeNames::mousemove |
| 1501 || mouseEventType == EventTypeNames::mouseup); | 1504 || mouseEventType == EventTypeNames::mouseup); |
| 1502 | 1505 |
| 1503 Node* lastNodeUnderMouse = updateMouseEventTargetNode(targetNode, mouseEvent
); | 1506 Node* lastNodeUnderMouse = updateMouseEventTargetNode(targetNode, mouseEvent
); |
| 1504 | 1507 |
| 1505 if (mouseEvent.getSyntheticEventType() == PlatformMouseEvent::FromTouch) | 1508 if (mouseEvent.getSyntheticEventType() == PlatformMouseEvent::FromTouch) |
| 1506 return dispatchMouseEvent(mouseEventType, m_nodeUnderMouse, clickCount,
mouseEvent); | 1509 return dispatchMouseEvent(mouseEventType, m_nodeUnderMouse, clickCount,
mouseEvent); |
| 1507 | 1510 |
| 1508 return m_pointerEventManager.sendMousePointerEvent( | 1511 Node* newNodeUnderMouse = nullptr; |
| 1512 const auto& eventResult = m_pointerEventManager.sendMousePointerEvent( |
| 1509 m_nodeUnderMouse, mouseEventType, clickCount, mouseEvent, nullptr, | 1513 m_nodeUnderMouse, mouseEventType, clickCount, mouseEvent, nullptr, |
| 1510 lastNodeUnderMouse); | 1514 lastNodeUnderMouse, &newNodeUnderMouse); |
| 1515 m_nodeUnderMouse = newNodeUnderMouse; |
| 1516 return eventResult; |
| 1511 } | 1517 } |
| 1512 | 1518 |
| 1513 void EventHandler::setClickNode(Node* node) | 1519 void EventHandler::setClickNode(Node* node) |
| 1514 { | 1520 { |
| 1515 m_clickNode = node; | 1521 m_clickNode = node; |
| 1516 } | 1522 } |
| 1517 | 1523 |
| 1518 WebInputEventResult EventHandler::handleMouseFocus(const MouseEventWithHitTestRe
sults& targetedEvent, InputDeviceCapabilities* sourceCapabilities) | 1524 WebInputEventResult EventHandler::handleMouseFocus(const MouseEventWithHitTestRe
sults& targetedEvent, InputDeviceCapabilities* sourceCapabilities) |
| 1519 { | 1525 { |
| 1520 // If clicking on a frame scrollbar, do not mess up with content focus. | 1526 // If clicking on a frame scrollbar, do not mess up with content focus. |
| (...skipping 1060 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2581 | 2587 |
| 2582 FrameHost* EventHandler::frameHost() const | 2588 FrameHost* EventHandler::frameHost() const |
| 2583 { | 2589 { |
| 2584 if (!m_frame->page()) | 2590 if (!m_frame->page()) |
| 2585 return nullptr; | 2591 return nullptr; |
| 2586 | 2592 |
| 2587 return &m_frame->page()->frameHost(); | 2593 return &m_frame->page()->frameHost(); |
| 2588 } | 2594 } |
| 2589 | 2595 |
| 2590 } // namespace blink | 2596 } // namespace blink |
| OLD | NEW |