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

Side by Side Diff: Source/core/dom/ContainerNode.cpp

Issue 152623002: Make StyleChange parameter explicit in setNeedsStyleRecalc. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/css/resolver/StyleResolver.cpp ('k') | Source/core/dom/Document.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 Apple Inc. All rights reserv ed. 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after
801 // independent of the focused element changing. 801 // independent of the focused element changing.
802 void ContainerNode::focusStateChanged() 802 void ContainerNode::focusStateChanged()
803 { 803 {
804 // If we're just changing the window's active state and the focused node has no 804 // If we're just changing the window's active state and the focused node has no
805 // renderer we can just ignore the state change. 805 // renderer we can just ignore the state change.
806 if (!renderer()) 806 if (!renderer())
807 return; 807 return;
808 // FIXME: This could probably setNeedsStyleRecalc(LocalStyleChange) in the a ffectedByFocus case 808 // FIXME: This could probably setNeedsStyleRecalc(LocalStyleChange) in the a ffectedByFocus case
809 // and only setNeedsStyleRecalc(SubtreeStyleChange) in the childrenAffectedB yFocus case. 809 // and only setNeedsStyleRecalc(SubtreeStyleChange) in the childrenAffectedB yFocus case.
810 if (renderStyle()->affectedByFocus() || (isElementNode() && toElement(this)- >childrenAffectedByFocus())) 810 if (renderStyle()->affectedByFocus() || (isElementNode() && toElement(this)- >childrenAffectedByFocus()))
811 setNeedsStyleRecalc(); 811 setNeedsStyleRecalc(SubtreeStyleChange);
812 if (renderer() && renderer()->style()->hasAppearance()) 812 if (renderer() && renderer()->style()->hasAppearance())
813 RenderTheme::theme().stateChanged(renderer(), FocusState); 813 RenderTheme::theme().stateChanged(renderer(), FocusState);
814 } 814 }
815 815
816 void ContainerNode::setFocus(bool received) 816 void ContainerNode::setFocus(bool received)
817 { 817 {
818 if (focused() == received) 818 if (focused() == received)
819 return; 819 return;
820 820
821 Node::setFocus(received); 821 Node::setFocus(received);
822 822
823 focusStateChanged(); 823 focusStateChanged();
824 // If :focus sets display: none, we lose focus but still need to recalc our style. 824 // If :focus sets display: none, we lose focus but still need to recalc our style.
825 if (!renderer() && !received) 825 if (!renderer() && !received)
826 setNeedsStyleRecalc(); 826 setNeedsStyleRecalc(SubtreeStyleChange);
827 } 827 }
828 828
829 void ContainerNode::setActive(bool down) 829 void ContainerNode::setActive(bool down)
830 { 830 {
831 if (down == active()) 831 if (down == active())
832 return; 832 return;
833 833
834 Node::setActive(down); 834 Node::setActive(down);
835 835
836 // FIXME: Why does this not need to handle the display: none transition like :hover does? 836 // FIXME: Why does this not need to handle the display: none transition like :hover does?
837 if (renderer()) { 837 if (renderer()) {
838 if (renderStyle()->affectedByActive() || (isElementNode() && toElement(t his)->childrenAffectedByActive())) 838 if (renderStyle()->affectedByActive() || (isElementNode() && toElement(t his)->childrenAffectedByActive()))
839 setNeedsStyleRecalc(); 839 setNeedsStyleRecalc(SubtreeStyleChange);
840 if (renderStyle()->hasAppearance()) 840 if (renderStyle()->hasAppearance())
841 RenderTheme::theme().stateChanged(renderer(), PressedState); 841 RenderTheme::theme().stateChanged(renderer(), PressedState);
842 } 842 }
843 } 843 }
844 844
845 void ContainerNode::setHovered(bool over) 845 void ContainerNode::setHovered(bool over)
846 { 846 {
847 if (over == hovered()) 847 if (over == hovered())
848 return; 848 return;
849 849
850 Node::setHovered(over); 850 Node::setHovered(over);
851 851
852 // If :hover sets display: none we lose our hover but still need to recalc o ur style. 852 // If :hover sets display: none we lose our hover but still need to recalc o ur style.
853 if (!renderer()) { 853 if (!renderer()) {
854 if (!over) 854 if (!over)
855 setNeedsStyleRecalc(); 855 setNeedsStyleRecalc(SubtreeStyleChange);
856 return; 856 return;
857 } 857 }
858 858
859 if (renderer()) { 859 if (renderer()) {
860 if (renderStyle()->affectedByHover() || (isElementNode() && toElement(th is)->childrenAffectedByHover())) 860 if (renderStyle()->affectedByHover() || (isElementNode() && toElement(th is)->childrenAffectedByHover()))
861 setNeedsStyleRecalc(); 861 setNeedsStyleRecalc(SubtreeStyleChange);
862 if (renderer() && renderer()->style()->hasAppearance()) 862 if (renderer() && renderer()->style()->hasAppearance())
863 RenderTheme::theme().stateChanged(renderer(), HoverState); 863 RenderTheme::theme().stateChanged(renderer(), HoverState);
864 } 864 }
865 } 865 }
866 866
867 PassRefPtr<HTMLCollection> ContainerNode::children() 867 PassRefPtr<HTMLCollection> ContainerNode::children()
868 { 868 {
869 return ensureRareData().ensureNodeLists().addCacheWithAtomicName<HTMLCollect ion>(this, NodeChildren); 869 return ensureRareData().ensureNodeLists().addCacheWithAtomicName<HTMLCollect ion>(this, NodeChildren);
870 } 870 }
871 871
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
1051 return true; 1051 return true;
1052 1052
1053 if (node->isElementNode() && toElement(node)->shadow()) 1053 if (node->isElementNode() && toElement(node)->shadow())
1054 return true; 1054 return true;
1055 1055
1056 return false; 1056 return false;
1057 } 1057 }
1058 #endif 1058 #endif
1059 1059
1060 } // namespace WebCore 1060 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/css/resolver/StyleResolver.cpp ('k') | Source/core/dom/Document.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698