Changeset 23994 in webkit


Ignore:
Timestamp:
Jul 4, 2007, 7:59:41 PM (18 years ago)
Author:
aroben
Message:

Change MouseEventWithHitTestResults to hold onto a HitTestResult

Reviewed by Sam.

  • dom/Document.cpp:

(WebCore::Document::prepareMouseEvent):

  • page/MouseEventWithHitTestResults.cpp:

(WebCore::MouseEventWithHitTestResults::MouseEventWithHitTestResults):
(WebCore::MouseEventWithHitTestResults::targetNode):
(WebCore::MouseEventWithHitTestResults::localPoint):
(WebCore::MouseEventWithHitTestResults::scrollbar):

  • page/MouseEventWithHitTestResults.h:

(WebCore::MouseEventWithHitTestResults::event):
(WebCore::MouseEventWithHitTestResults::hitTestResult):

Location:
trunk/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r23992 r23994  
     12007-07-04  Adam Roben  <aroben@apple.com>
     2
     3        Change MouseEventWithHitTestResults to hold onto a HitTestResult
     4
     5        Reviewed by Sam.
     6
     7        * dom/Document.cpp:
     8        (WebCore::Document::prepareMouseEvent):
     9        * page/MouseEventWithHitTestResults.cpp:
     10        (WebCore::MouseEventWithHitTestResults::MouseEventWithHitTestResults):
     11        (WebCore::MouseEventWithHitTestResults::targetNode):
     12        (WebCore::MouseEventWithHitTestResults::localPoint):
     13        (WebCore::MouseEventWithHitTestResults::scrollbar):
     14        * page/MouseEventWithHitTestResults.h:
     15        (WebCore::MouseEventWithHitTestResults::event):
     16        (WebCore::MouseEventWithHitTestResults::hitTestResult):
     17
    1182007-07-04  Matt Lilek  <pewtermoose@gmail.com>
    219
  • trunk/WebCore/dom/Document.cpp

    r22035 r23994  
    17491749
    17501750    if (!renderer())
    1751         return MouseEventWithHitTestResults(event, 0, IntPoint(), 0, false);
     1751        return MouseEventWithHitTestResults(event, HitTestResult(IntPoint()));
    17521752
    17531753    HitTestResult result(documentPoint);
     
    17571757        updateRendering();
    17581758
    1759     bool isOverLink = result.URLElement() && result.URLElement()->isLink();
    1760     return MouseEventWithHitTestResults(event, result.innerNode(), result.localPoint(), result.scrollbar(), isOverLink);
     1759    return MouseEventWithHitTestResults(event, result);
    17611760}
    17621761
  • trunk/WebCore/page/MouseEventWithHitTestResults.cpp

    r18758 r23994  
    2121#include "MouseEventWithHitTestResults.h"
    2222
     23#include "Element.h"
     24#include "Node.h"
     25
    2326// Would TargetedMouseEvent be a better name?
    2427
     
    3538}
    3639
    37 MouseEventWithHitTestResults::MouseEventWithHitTestResults(const PlatformMouseEvent& event,
    38         PassRefPtr<Node> node, const IntPoint& localPoint, PlatformScrollbar* scrollbar, bool isOverLink)
     40MouseEventWithHitTestResults::MouseEventWithHitTestResults(const PlatformMouseEvent& event, const HitTestResult& hitTestResult)
    3941    : m_event(event)
    40     , m_targetNode(node)
    41     , m_targetElement(targetElement(m_targetNode.get()))
    42     , m_localPoint(localPoint)
    43     , m_scrollbar(scrollbar)
    44     , m_isOverLink(isOverLink)
     42    , m_hitTestResult(hitTestResult)
    4543{
    4644}
     
    4846Node* MouseEventWithHitTestResults::targetNode() const
    4947{
    50     if (m_targetElement && !m_targetNode->inDocument() && m_targetElement->inDocument())
    51         return m_targetElement.get();
    52     return m_targetNode.get();
     48    Node* node = m_hitTestResult.innerNonSharedNode();
     49    if (node && node->inDocument())
     50        return node;
     51
     52    Element* element = targetElement(node);
     53    if (element && element->inDocument())
     54        return element;
     55
     56    return node;
     57}
     58
     59const IntPoint MouseEventWithHitTestResults::localPoint() const
     60{
     61    return m_hitTestResult.localPoint();
     62}
     63
     64PlatformScrollbar* MouseEventWithHitTestResults::scrollbar() const
     65{
     66    return m_hitTestResult.scrollbar();
     67}
     68
     69bool MouseEventWithHitTestResults::isOverLink() const
     70{
     71    return m_hitTestResult.URLElement() && m_hitTestResult.URLElement()->isLink();
    5372}
    5473
  • trunk/WebCore/page/MouseEventWithHitTestResults.h

    r18758 r23994  
    2222#define MouseEventWithHitTestResults_h
    2323
    24 #include "Element.h"
     24#include "HitTestResult.h"
    2525#include "PlatformMouseEvent.h"
    2626
     
    3232class MouseEventWithHitTestResults {
    3333public:
    34     MouseEventWithHitTestResults(const PlatformMouseEvent&, PassRefPtr<Node>, const IntPoint& localPoint, PlatformScrollbar*, bool isOverLink);
     34    MouseEventWithHitTestResults(const PlatformMouseEvent&, const HitTestResult&);
    3535
    3636    const PlatformMouseEvent& event() const { return m_event; }
     37    const HitTestResult& hitTestResult() const { return m_hitTestResult; }
    3738    Node* targetNode() const;
    38     const IntPoint& localPoint() const { return m_localPoint; }
    39     PlatformScrollbar* scrollbar() const { return m_scrollbar; }
    40     bool isOverLink() const { return m_isOverLink; }
     39    const IntPoint localPoint() const;
     40    PlatformScrollbar* scrollbar() const;
     41    bool isOverLink() const;
    4142
    4243private:
    4344    PlatformMouseEvent m_event;
    44     RefPtr<Node> m_targetNode;
    45     RefPtr<Element> m_targetElement;
    46     IntPoint m_localPoint;
    47     PlatformScrollbar* m_scrollbar;
    48     bool m_isOverLink;
     45    HitTestResult m_hitTestResult;
    4946};
    5047
Note: See TracChangeset for help on using the changeset viewer.