| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r
ights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r
ights reserved. |
| 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
| 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. |
| 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
| 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. |
| (...skipping 5403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5414 m_frame->eventHandler().notifyElementActivated(); | 5414 m_frame->eventHandler().notifyElementActivated(); |
| 5415 | 5415 |
| 5416 Element* innerElementInDocument = innerElement; | 5416 Element* innerElementInDocument = innerElement; |
| 5417 while (innerElementInDocument && innerElementInDocument->document() != this)
{ | 5417 while (innerElementInDocument && innerElementInDocument->document() != this)
{ |
| 5418 innerElementInDocument->document().updateHoverActiveState(request, inner
ElementInDocument, event); | 5418 innerElementInDocument->document().updateHoverActiveState(request, inner
ElementInDocument, event); |
| 5419 innerElementInDocument = innerElementInDocument->document().ownerElement
(); | 5419 innerElementInDocument = innerElementInDocument->document().ownerElement
(); |
| 5420 } | 5420 } |
| 5421 | 5421 |
| 5422 Element* oldActiveElement = activeHoverElement(); | 5422 Element* oldActiveElement = activeHoverElement(); |
| 5423 if (oldActiveElement && !request.active()) { | 5423 if (oldActiveElement && !request.active()) { |
| 5424 // We are clearing the :active chain because the mouse has been released
. | 5424 // The oldActiveElement renderer is null, dropped on :active by setting
display: none, |
| 5425 for (RenderObject* curr = oldActiveElement->renderer(); curr; curr = cur
r->parent()) { | 5425 // for instance. We still need to clear the ActiveChain as the mouse is
released. |
| 5426 if (curr->node()) { | 5426 for (Node* node = oldActiveElement; node; node = NodeRenderingTraversal:
:parent(node)) { |
| 5427 ASSERT(!curr->node()->isTextNode()); | 5427 ASSERT(!node->isTextNode()); |
| 5428 curr->node()->setActive(false); | 5428 node->setActive(false); |
| 5429 m_userActionElements.setInActiveChain(curr->node(), false); | 5429 m_userActionElements.setInActiveChain(node, false); |
| 5430 } | |
| 5431 } | 5430 } |
| 5432 setActiveHoverElement(nullptr); | 5431 setActiveHoverElement(nullptr); |
| 5433 } else { | 5432 } else { |
| 5434 Element* newActiveElement = innerElementInDocument; | 5433 Element* newActiveElement = innerElementInDocument; |
| 5435 if (!oldActiveElement && newActiveElement && !newActiveElement->isDisabl
edFormControl() && request.active() && !request.touchMove()) { | 5434 if (!oldActiveElement && newActiveElement && !newActiveElement->isDisabl
edFormControl() && request.active() && !request.touchMove()) { |
| 5436 // We are setting the :active chain and freezing it. If future moves
happen, they | 5435 // We are setting the :active chain and freezing it. If future moves
happen, they |
| 5437 // will need to reference this chain. | 5436 // will need to reference this chain. |
| 5438 for (RenderObject* curr = newActiveElement->renderer(); curr; curr =
curr->parent()) { | 5437 for (Node* node = newActiveElement; node; node = NodeRenderingTraver
sal::parent(node)) { |
| 5439 if (curr->node() && !curr->isText()) | 5438 ASSERT(!node->isTextNode()); |
| 5440 m_userActionElements.setInActiveChain(curr->node(), true); | 5439 m_userActionElements.setInActiveChain(node, true); |
| 5441 } | 5440 } |
| 5442 | |
| 5443 setActiveHoverElement(newActiveElement); | 5441 setActiveHoverElement(newActiveElement); |
| 5444 } | 5442 } |
| 5445 } | 5443 } |
| 5446 // If the mouse has just been pressed, set :active on the chain. Those (and
only those) | 5444 // If the mouse has just been pressed, set :active on the chain. Those (and
only those) |
| 5447 // nodes should remain :active until the mouse is released. | 5445 // nodes should remain :active until the mouse is released. |
| 5448 bool allowActiveChanges = !oldActiveElement && activeHoverElement(); | 5446 bool allowActiveChanges = !oldActiveElement && activeHoverElement(); |
| 5449 | 5447 |
| 5450 // If the mouse is down and if this is a mouse move event, we want to restri
ct changes in | 5448 // If the mouse is down and if this is a mouse move event, we want to restri
ct changes in |
| 5451 // :hover/:active to only apply to elements that are in the :active chain th
at we froze | 5449 // :hover/:active to only apply to elements that are in the :active chain th
at we froze |
| 5452 // at the time the mouse went down. | 5450 // at the time the mouse went down. |
| (...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5816 visitor->trace(m_compositorPendingAnimations); | 5814 visitor->trace(m_compositorPendingAnimations); |
| 5817 visitor->trace(m_contextDocument); | 5815 visitor->trace(m_contextDocument); |
| 5818 visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this); | 5816 visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this); |
| 5819 DocumentSupplementable::trace(visitor); | 5817 DocumentSupplementable::trace(visitor); |
| 5820 TreeScope::trace(visitor); | 5818 TreeScope::trace(visitor); |
| 5821 ContainerNode::trace(visitor); | 5819 ContainerNode::trace(visitor); |
| 5822 ExecutionContext::trace(visitor); | 5820 ExecutionContext::trace(visitor); |
| 5823 } | 5821 } |
| 5824 | 5822 |
| 5825 } // namespace WebCore | 5823 } // namespace WebCore |
| OLD | NEW |