MouseEventWithHitTestResults.cpp [plain text]
#include "config.h"
#include "MouseEventWithHitTestResults.h"
namespace WebCore {
static inline Element* targetElement(Node* node)
{
if (!node)
return 0;
Node* parent = node->parent();
if (!parent || !parent->isElementNode())
return 0;
return static_cast<Element*>(parent);
}
MouseEventWithHitTestResults::MouseEventWithHitTestResults(const PlatformMouseEvent& event,
PassRefPtr<Node> node, bool isOverLink)
: m_event(event)
, m_targetNode(node)
, m_targetElement(targetElement(m_targetNode.get()))
, m_isOverLink(isOverLink)
{
}
Node* MouseEventWithHitTestResults::targetNode() const
{
if (m_targetElement && !m_targetNode->inDocument() && m_targetElement->inDocument())
return m_targetElement.get();
return m_targetNode.get();
}
}