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 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. |
6 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 6 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
(...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
743 | 743 |
744 void Node::markAncestorsWithChildNeedsStyleRecalc() | 744 void Node::markAncestorsWithChildNeedsStyleRecalc() |
745 { | 745 { |
746 for (ContainerNode* p = parentOrShadowHostNode(); p && !p->childNeedsStyleRe
calc(); p = p->parentOrShadowHostNode()) | 746 for (ContainerNode* p = parentOrShadowHostNode(); p && !p->childNeedsStyleRe
calc(); p = p->parentOrShadowHostNode()) |
747 p->setChildNeedsStyleRecalc(); | 747 p->setChildNeedsStyleRecalc(); |
748 | 748 |
749 if (document().needsStyleRecalc() || document().childNeedsStyleRecalc()) | 749 if (document().needsStyleRecalc() || document().childNeedsStyleRecalc()) |
750 document().scheduleStyleRecalc(); | 750 document().scheduleStyleRecalc(); |
751 } | 751 } |
752 | 752 |
753 void Node::setNeedsStyleRecalc(StyleChangeType changeType, StyleChangeSource sou
rce) | 753 void Node::setNeedsStyleRecalc(StyleChangeType changeType) |
754 { | 754 { |
755 ASSERT(changeType != NoStyleChange); | 755 ASSERT(changeType != NoStyleChange); |
756 if (!inActiveDocument()) | 756 if (!inActiveDocument()) |
757 return; | 757 return; |
758 | 758 |
759 if (source == StyleChangeFromRenderer) | |
760 setFlag(NotifyRendererWithIdenticalStyles); | |
761 | |
762 StyleChangeType existingChangeType = styleChangeType(); | 759 StyleChangeType existingChangeType = styleChangeType(); |
763 if (changeType > existingChangeType) { | 760 if (changeType > existingChangeType) { |
764 setStyleChange(changeType); | 761 setStyleChange(changeType); |
765 if (changeType >= SubtreeStyleChange) | 762 if (changeType >= SubtreeStyleChange) |
766 traceStyleChangeIfNeeded(changeType); | 763 traceStyleChangeIfNeeded(changeType); |
767 } | 764 } |
768 | 765 |
769 if (existingChangeType == NoStyleChange) | 766 if (existingChangeType == NoStyleChange) |
770 markAncestorsWithChildNeedsStyleRecalc(); | 767 markAncestorsWithChildNeedsStyleRecalc(); |
771 | 768 |
772 if (isElementNode() && hasRareData()) | 769 if (isElementNode() && hasRareData()) |
773 toElement(*this).setAnimationStyleChange(false); | 770 toElement(*this).setAnimationStyleChange(false); |
774 } | 771 } |
775 | 772 |
776 void Node::clearNeedsStyleRecalc() | 773 void Node::clearNeedsStyleRecalc() |
777 { | 774 { |
778 m_nodeFlags &= ~StyleChangeMask; | 775 m_nodeFlags &= ~StyleChangeMask; |
779 clearFlag(NotifyRendererWithIdenticalStyles); | 776 |
| 777 clearNeedsLayerUpdate(); |
780 | 778 |
781 if (isElementNode() && hasRareData()) | 779 if (isElementNode() && hasRareData()) |
782 toElement(*this).setAnimationStyleChange(false); | 780 toElement(*this).setAnimationStyleChange(false); |
783 } | 781 } |
784 | 782 |
785 bool Node::inActiveDocument() const | 783 bool Node::inActiveDocument() const |
786 { | 784 { |
787 return inDocument() && document().isActive(); | 785 return inDocument() && document().isActive(); |
788 } | 786 } |
789 | 787 |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
999 if (hovered()) | 997 if (hovered()) |
1000 doc.hoveredNodeDetached(this); | 998 doc.hoveredNodeDetached(this); |
1001 if (inActiveChain()) | 999 if (inActiveChain()) |
1002 doc.activeChainNodeDetached(this); | 1000 doc.activeChainNodeDetached(this); |
1003 doc.userActionElements().didDetach(this); | 1001 doc.userActionElements().didDetach(this); |
1004 } | 1002 } |
1005 } | 1003 } |
1006 | 1004 |
1007 setStyleChange(NeedsReattachStyleChange); | 1005 setStyleChange(NeedsReattachStyleChange); |
1008 setChildNeedsStyleRecalc(); | 1006 setChildNeedsStyleRecalc(); |
| 1007 |
1009 if (StyleResolver* resolver = document().styleResolver()) | 1008 if (StyleResolver* resolver = document().styleResolver()) |
1010 resolver->ruleFeatureSet().clearStyleInvalidation(this); | 1009 resolver->ruleFeatureSet().clearStyleInvalidation(this); |
1011 | 1010 |
1012 #ifndef NDEBUG | 1011 #ifndef NDEBUG |
1013 detachingNode = 0; | 1012 detachingNode = 0; |
1014 #endif | 1013 #endif |
1015 } | 1014 } |
1016 | 1015 |
1017 void Node::reattachWhitespaceSiblings(Text* start) | 1016 void Node::reattachWhitespaceSiblings(Text* start) |
1018 { | 1017 { |
(...skipping 1522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2541 node->showTreeForThis(); | 2540 node->showTreeForThis(); |
2542 } | 2541 } |
2543 | 2542 |
2544 void showNodePath(const WebCore::Node* node) | 2543 void showNodePath(const WebCore::Node* node) |
2545 { | 2544 { |
2546 if (node) | 2545 if (node) |
2547 node->showNodePathForThis(); | 2546 node->showNodePathForThis(); |
2548 } | 2547 } |
2549 | 2548 |
2550 #endif | 2549 #endif |
OLD | NEW |