Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(118)

Unified Diff: Source/WebCore/dom/Document.cpp

Issue 11840004: Merge 139029 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1364/
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/WebCore/dom/Document.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/WebCore/dom/Document.cpp
===================================================================
--- Source/WebCore/dom/Document.cpp (revision 139390)
+++ Source/WebCore/dom/Document.cpp (working copy)
@@ -690,7 +690,7 @@
m_docType = 0;
m_focusedNode = 0;
m_hoverNode = 0;
- m_activeNode = 0;
+ m_activeElement = 0;
m_titleElement = 0;
m_documentElement = 0;
m_contextFeatures = ContextFeatures::defaultSwitch();
@@ -2121,7 +2121,7 @@
m_hoverNode = 0;
m_focusedNode = 0;
- m_activeNode = 0;
+ m_activeElement = 0;
ContainerNode::detach();
@@ -3240,7 +3240,12 @@
void Document::setActiveNode(PassRefPtr<Node> newActiveNode)
{
- m_activeNode = newActiveNode;
+ if (!newActiveNode) {
+ m_activeElement.clear();
+ return;
+ }
+
+ m_activeElement = newActiveNode->isElementNode() ? toElement(newActiveNode.get()) : newActiveNode->parentElement();
}
void Document::focusedNodeRemoved()
@@ -3281,12 +3286,12 @@
void Document::activeChainNodeDetached(Node* node)
{
- if (!m_activeNode || (node != m_activeNode && (!m_activeNode->isTextNode() || node != m_activeNode->parentNode())))
+ if (!m_activeElement || (node != m_activeElement && (!m_activeElement->isTextNode() || node != m_activeElement->parentNode())))
return;
- m_activeNode = node->parentNode();
- while (m_activeNode && !m_activeNode->renderer())
- m_activeNode = m_activeNode->parentNode();
+ m_activeElement = node->parentElement();
+ while (m_activeElement && !m_activeElement->renderer())
+ m_activeElement = m_activeElement->parentElement();
}
#if ENABLE(DASHBOARD_SUPPORT) || ENABLE(DRAGGABLE_REGION)
@@ -5811,7 +5816,7 @@
Node* innerNodeInDocument = result.innerNode();
ASSERT(!innerNodeInDocument || innerNodeInDocument->document() == this);
- Node* oldActiveNode = activeNode();
+ Node* oldActiveNode = activeElement();
if (oldActiveNode && !request.active()) {
// We are clearing the :active chain because the mouse has been released.
for (RenderObject* curr = oldActiveNode->renderer(); curr; curr = curr->parent()) {
@@ -5830,12 +5835,13 @@
if (curr->node() && !curr->isText())
m_userActionElements.setInActiveChain(curr->node(), true);
}
+
setActiveNode(newActiveNode);
}
}
// If the mouse has just been pressed, set :active on the chain. Those (and only those)
// nodes should remain :active until the mouse is released.
- bool allowActiveChanges = !oldActiveNode && activeNode();
+ bool allowActiveChanges = !oldActiveNode && activeElement();
// If the mouse is down and if this is a mouse move event, we want to restrict changes in
// :hover/:active to only apply to elements that are in the :active chain that we froze
« no previous file with comments | « Source/WebCore/dom/Document.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698