Changeset 73717 in webkit


Ignore:
Timestamp:
Dec 10, 2010 4:14:54 AM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2010-12-10 Emil Eklund <eae@chromium.org>

Reviewed by Eric Seidel.

Change EventHandler::dispatchMouseEvent code to use DOM traversal instead of render tree traversal
https://bugs.webkit.org/show_bug.cgi?id=49982

  • page/EventHandler.cpp: (WebCore::EventHandler::dispatchMouseEvent): Walk up DOM/hosted tree rather than render tree.
Location:
trunk/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r73710 r73717  
     12010-12-10  Emil Eklund  <eae@chromium.org>
     2
     3        Reviewed by Eric Seidel.
     4
     5        Change EventHandler::dispatchMouseEvent code to use DOM traversal instead of render tree traversal
     6        https://bugs.webkit.org/show_bug.cgi?id=49982
     7
     8        * page/EventHandler.cpp:
     9        (WebCore::EventHandler::dispatchMouseEvent):
     10        Walk up DOM/hosted tree rather than render tree.
     11
    1122010-12-10  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
    213
  • trunk/WebCore/page/EventHandler.cpp

    r72796 r73717  
    18561856        // from form fields before the button click is processed.
    18571857        Node* node = m_nodeUnderMouse.get();
    1858         RenderObject* renderer = node ? node->renderer() : 0;
    1859 
    1860         // Walk up the render tree to search for a node to focus.
    1861         // Walking up the DOM tree wouldn't work for shadow trees, like those behind the engine-based text fields.
    1862         // FIXME: Rework to use shadowParent. No need to traverse with the render tree.
    1863         while (renderer) {
    1864             node = renderer->node();
    1865             if (node && node->isMouseFocusable()) {
    1866                 // To fix <rdar://problem/4895428> Can't drag selected ToDo, we don't focus a
    1867                 // node on mouse down if it's selected and inside a focused node. It will be
     1858
     1859        // Walk up the DOM tree to search for a node to focus.
     1860        while (node) {
     1861            if (node->isMouseFocusable()) {
     1862                // To fix <rdar://problem/4895428> Can't drag selected ToDo, we don't focus a
     1863                // node on mouse down if it's selected and inside a focused node. It will be
    18681864                // focused if the user does a mouseup over it, however, because the mouseup
    18691865                // will set a selection inside it, which will call setFocuseNodeIfNeeded.
     
    18771873                break;
    18781874            }
    1879            
    1880             renderer = renderer->parent();
     1875            node = node->parentOrHostNode();
    18811876        }
    18821877
Note: See TracChangeset for help on using the changeset viewer.