OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde
.org> | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde
.org> |
3 * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org> |
4 * Copyright (C) 2008 Apple Inc. All rights reserved. | 4 * Copyright (C) 2008 Apple Inc. All rights reserved. |
5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> | 5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> |
6 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> | 6 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 21 matching lines...) Expand all Loading... |
32 #include "core/XMLNames.h" | 32 #include "core/XMLNames.h" |
33 #include "core/css/CSSCursorImageValue.h" | 33 #include "core/css/CSSCursorImageValue.h" |
34 #include "core/css/parser/CSSParser.h" | 34 #include "core/css/parser/CSSParser.h" |
35 #include "core/css/resolver/StyleResolver.h" | 35 #include "core/css/resolver/StyleResolver.h" |
36 #include "core/dom/Document.h" | 36 #include "core/dom/Document.h" |
37 #include "core/dom/ElementTraversal.h" | 37 #include "core/dom/ElementTraversal.h" |
38 #include "core/dom/shadow/ShadowRoot.h" | 38 #include "core/dom/shadow/ShadowRoot.h" |
39 #include "core/events/Event.h" | 39 #include "core/events/Event.h" |
40 #include "core/frame/Settings.h" | 40 #include "core/frame/Settings.h" |
41 #include "core/html/HTMLElement.h" | 41 #include "core/html/HTMLElement.h" |
42 #include "core/rendering/RenderObject.h" | 42 #include "core/layout/LayoutObject.h" |
43 #include "core/rendering/svg/RenderSVGResourceContainer.h" | 43 #include "core/rendering/svg/RenderSVGResourceContainer.h" |
44 #include "core/svg/SVGCursorElement.h" | 44 #include "core/svg/SVGCursorElement.h" |
45 #include "core/svg/SVGDocumentExtensions.h" | 45 #include "core/svg/SVGDocumentExtensions.h" |
46 #include "core/svg/SVGElementRareData.h" | 46 #include "core/svg/SVGElementRareData.h" |
47 #include "core/svg/SVGGraphicsElement.h" | 47 #include "core/svg/SVGGraphicsElement.h" |
48 #include "core/svg/SVGSVGElement.h" | 48 #include "core/svg/SVGSVGElement.h" |
49 #include "core/svg/SVGTitleElement.h" | 49 #include "core/svg/SVGTitleElement.h" |
50 #include "core/svg/SVGUseElement.h" | 50 #include "core/svg/SVGUseElement.h" |
51 | 51 |
52 #include "wtf/TemporaryChange.h" | 52 #include "wtf/TemporaryChange.h" |
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 void SVGElement::invalidateRelativeLengthClients(SubtreeLayoutScope* layoutScope
) | 411 void SVGElement::invalidateRelativeLengthClients(SubtreeLayoutScope* layoutScope
) |
412 { | 412 { |
413 if (!inDocument()) | 413 if (!inDocument()) |
414 return; | 414 return; |
415 | 415 |
416 ASSERT(!m_inRelativeLengthClientsInvalidation); | 416 ASSERT(!m_inRelativeLengthClientsInvalidation); |
417 #if ENABLE(ASSERT) | 417 #if ENABLE(ASSERT) |
418 TemporaryChange<bool> inRelativeLengthClientsInvalidationChange(m_inRelative
LengthClientsInvalidation, true); | 418 TemporaryChange<bool> inRelativeLengthClientsInvalidationChange(m_inRelative
LengthClientsInvalidation, true); |
419 #endif | 419 #endif |
420 | 420 |
421 RenderObject* renderer = this->renderer(); | 421 LayoutObject* renderer = this->renderer(); |
422 if (renderer && selfHasRelativeLengths()) { | 422 if (renderer && selfHasRelativeLengths()) { |
423 if (renderer->isSVGResourceContainer()) | 423 if (renderer->isSVGResourceContainer()) |
424 toRenderSVGResourceContainer(renderer)->invalidateCacheAndMarkForLay
out(layoutScope); | 424 toRenderSVGResourceContainer(renderer)->invalidateCacheAndMarkForLay
out(layoutScope); |
425 else | 425 else |
426 renderer->setNeedsLayoutAndFullPaintInvalidation(MarkContainingBlock
Chain, layoutScope); | 426 renderer->setNeedsLayoutAndFullPaintInvalidation(MarkContainingBlock
Chain, layoutScope); |
427 } | 427 } |
428 | 428 |
429 for (SVGElement* element : m_elementsWithRelativeLengths) { | 429 for (SVGElement* element : m_elementsWithRelativeLengths) { |
430 if (element != this) | 430 if (element != this) |
431 element->invalidateRelativeLengthClients(layoutScope); | 431 element->invalidateRelativeLengthClients(layoutScope); |
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
865 return; | 865 return; |
866 } | 866 } |
867 | 867 |
868 if (attrName == HTMLNames::classAttr) { | 868 if (attrName == HTMLNames::classAttr) { |
869 classAttributeChanged(AtomicString(m_className->currentValue()->value())
); | 869 classAttributeChanged(AtomicString(m_className->currentValue()->value())
); |
870 invalidateInstances(); | 870 invalidateInstances(); |
871 return; | 871 return; |
872 } | 872 } |
873 | 873 |
874 if (isIdAttributeName(attrName)) { | 874 if (isIdAttributeName(attrName)) { |
875 RenderObject* object = renderer(); | 875 LayoutObject* object = renderer(); |
876 // Notify resources about id changes, this is important as we cache reso
urces by id in SVGDocumentExtensions | 876 // Notify resources about id changes, this is important as we cache reso
urces by id in SVGDocumentExtensions |
877 if (object && object->isSVGResourceContainer()) | 877 if (object && object->isSVGResourceContainer()) |
878 toRenderSVGResourceContainer(object)->idChanged(); | 878 toRenderSVGResourceContainer(object)->idChanged(); |
879 if (inDocument()) | 879 if (inDocument()) |
880 buildPendingResourcesIfNeeded(); | 880 buildPendingResourcesIfNeeded(); |
881 invalidateInstances(); | 881 invalidateInstances(); |
882 return; | 882 return; |
883 } | 883 } |
884 } | 884 } |
885 | 885 |
(...skipping 18 matching lines...) Expand all Loading... |
904 } | 904 } |
905 } | 905 } |
906 | 906 |
907 PassRefPtr<RenderStyle> SVGElement::customStyleForRenderer() | 907 PassRefPtr<RenderStyle> SVGElement::customStyleForRenderer() |
908 { | 908 { |
909 if (!correspondingElement()) | 909 if (!correspondingElement()) |
910 return document().ensureStyleResolver().styleForElement(this); | 910 return document().ensureStyleResolver().styleForElement(this); |
911 | 911 |
912 RenderStyle* style = 0; | 912 RenderStyle* style = 0; |
913 if (Element* parent = parentOrShadowHostElement()) { | 913 if (Element* parent = parentOrShadowHostElement()) { |
914 if (RenderObject* renderer = parent->renderer()) | 914 if (LayoutObject* renderer = parent->renderer()) |
915 style = renderer->style(); | 915 style = renderer->style(); |
916 } | 916 } |
917 | 917 |
918 return document().ensureStyleResolver().styleForElement(correspondingElement
(), style, DisallowStyleSharing); | 918 return document().ensureStyleResolver().styleForElement(correspondingElement
(), style, DisallowStyleSharing); |
919 } | 919 } |
920 | 920 |
921 MutableStylePropertySet* SVGElement::animatedSMILStyleProperties() const | 921 MutableStylePropertySet* SVGElement::animatedSMILStyleProperties() const |
922 { | 922 { |
923 if (hasSVGRareData()) | 923 if (hasSVGRareData()) |
924 return svgRareData()->animatedSMILStyleProperties(); | 924 return svgRareData()->animatedSMILStyleProperties(); |
(...skipping 11 matching lines...) Expand all Loading... |
936 svgRareData()->setUseOverrideComputedStyle(value); | 936 svgRareData()->setUseOverrideComputedStyle(value); |
937 } | 937 } |
938 | 938 |
939 RenderStyle* SVGElement::computedStyle(PseudoId pseudoElementSpecifier) | 939 RenderStyle* SVGElement::computedStyle(PseudoId pseudoElementSpecifier) |
940 { | 940 { |
941 if (!hasSVGRareData() || !svgRareData()->useOverrideComputedStyle()) | 941 if (!hasSVGRareData() || !svgRareData()->useOverrideComputedStyle()) |
942 return Element::computedStyle(pseudoElementSpecifier); | 942 return Element::computedStyle(pseudoElementSpecifier); |
943 | 943 |
944 RenderStyle* parentStyle = 0; | 944 RenderStyle* parentStyle = 0; |
945 if (Element* parent = parentOrShadowHostElement()) { | 945 if (Element* parent = parentOrShadowHostElement()) { |
946 if (RenderObject* renderer = parent->renderer()) | 946 if (LayoutObject* renderer = parent->renderer()) |
947 parentStyle = renderer->style(); | 947 parentStyle = renderer->style(); |
948 } | 948 } |
949 | 949 |
950 return svgRareData()->overrideComputedStyle(this, parentStyle); | 950 return svgRareData()->overrideComputedStyle(this, parentStyle); |
951 } | 951 } |
952 | 952 |
953 bool SVGElement::hasFocusEventListeners() const | 953 bool SVGElement::hasFocusEventListeners() const |
954 { | 954 { |
955 return hasEventListeners(EventTypeNames::focusin) || hasEventListeners(Event
TypeNames::focusout) | 955 return hasEventListeners(EventTypeNames::focusin) || hasEventListeners(Event
TypeNames::focusout) |
956 || hasEventListeners(EventTypeNames::focus) || hasEventListeners(EventTy
peNames::blur); | 956 || hasEventListeners(EventTypeNames::focus) || hasEventListeners(EventTy
peNames::blur); |
957 } | 957 } |
958 | 958 |
959 void SVGElement::markForLayoutAndParentResourceInvalidation(RenderObject* render
er) | 959 void SVGElement::markForLayoutAndParentResourceInvalidation(LayoutObject* render
er) |
960 { | 960 { |
961 ASSERT(renderer); | 961 ASSERT(renderer); |
962 RenderSVGResourceContainer::markForLayoutAndParentResourceInvalidation(rende
rer, true); | 962 RenderSVGResourceContainer::markForLayoutAndParentResourceInvalidation(rende
rer, true); |
963 } | 963 } |
964 | 964 |
965 void SVGElement::invalidateInstances() | 965 void SVGElement::invalidateInstances() |
966 { | 966 { |
967 if (!inDocument()) | 967 if (!inDocument()) |
968 return; | 968 return; |
969 | 969 |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1184 Element::trace(visitor); | 1184 Element::trace(visitor); |
1185 } | 1185 } |
1186 | 1186 |
1187 const AtomicString& SVGElement::eventParameterName() | 1187 const AtomicString& SVGElement::eventParameterName() |
1188 { | 1188 { |
1189 DEFINE_STATIC_LOCAL(const AtomicString, evtString, ("evt", AtomicString::Con
structFromLiteral)); | 1189 DEFINE_STATIC_LOCAL(const AtomicString, evtString, ("evt", AtomicString::Con
structFromLiteral)); |
1190 return evtString; | 1190 return evtString; |
1191 } | 1191 } |
1192 | 1192 |
1193 } // namespace blink | 1193 } // namespace blink |
OLD | NEW |