OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006 Rob Buis <buis@kde.org> | 2 * Copyright (C) 2006 Rob Buis <buis@kde.org> |
3 * (C) 2008 Nikolas Zimmermann <zimmermann@kde.org> | 3 * (C) 2008 Nikolas Zimmermann <zimmermann@kde.org> |
4 * Copyright (C) 2008 Apple Inc. All rights reserved. | 4 * Copyright (C) 2008 Apple Inc. All rights reserved. |
5 * | 5 * |
6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
10 * | 10 * |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 cursorElement->addClient(svgElement); | 115 cursorElement->addClient(svgElement); |
116 return true; | 116 return true; |
117 } | 117 } |
118 | 118 |
119 return false; | 119 return false; |
120 } | 120 } |
121 | 121 |
122 StyleImage* CSSCursorImageValue::cachedImage(ResourceFetcher* loader, float devi
ceScaleFactor) | 122 StyleImage* CSSCursorImageValue::cachedImage(ResourceFetcher* loader, float devi
ceScaleFactor) |
123 { | 123 { |
124 if (m_imageValue->isImageSetValue()) | 124 if (m_imageValue->isImageSetValue()) |
125 return static_cast<CSSImageSetValue*>(m_imageValue.get())->cachedImageSe
t(loader, deviceScaleFactor); | 125 return toCSSImageSetValue(m_imageValue.get())->cachedImageSet(loader, de
viceScaleFactor); |
126 | 126 |
127 if (!m_accessedImage) { | 127 if (!m_accessedImage) { |
128 m_accessedImage = true; | 128 m_accessedImage = true; |
129 | 129 |
130 // For SVG images we need to lazily substitute in the correct URL. Rathe
r than attempt | 130 // For SVG images we need to lazily substitute in the correct URL. Rathe
r than attempt |
131 // to change the URL of the CSSImageValue (which would then change behav
ior like cssText), | 131 // to change the URL of the CSSImageValue (which would then change behav
ior like cssText), |
132 // we create an alternate CSSImageValue to use. | 132 // we create an alternate CSSImageValue to use. |
133 if (isSVGCursor() && loader && loader->document()) { | 133 if (isSVGCursor() && loader && loader->document()) { |
134 RefPtr<CSSImageValue> imageValue = toCSSImageValue(m_imageValue.get(
)); | 134 RefPtr<CSSImageValue> imageValue = toCSSImageValue(m_imageValue.get(
)); |
135 // FIXME: This will fail if the <cursor> element is in a shadow DOM
(bug 59827) | 135 // FIXME: This will fail if the <cursor> element is in a shadow DOM
(bug 59827) |
(...skipping 12 matching lines...) Expand all Loading... |
148 if (m_image && m_image->isImageResource()) | 148 if (m_image && m_image->isImageResource()) |
149 return static_cast<StyleFetchedImage*>(m_image.get()); | 149 return static_cast<StyleFetchedImage*>(m_image.get()); |
150 | 150 |
151 return 0; | 151 return 0; |
152 } | 152 } |
153 | 153 |
154 StyleImage* CSSCursorImageValue::cachedOrPendingImage(float deviceScaleFactor) | 154 StyleImage* CSSCursorImageValue::cachedOrPendingImage(float deviceScaleFactor) |
155 { | 155 { |
156 // Need to delegate completely so that changes in device scale factor can be
handled appropriately. | 156 // Need to delegate completely so that changes in device scale factor can be
handled appropriately. |
157 if (m_imageValue->isImageSetValue()) | 157 if (m_imageValue->isImageSetValue()) |
158 return static_cast<CSSImageSetValue*>(m_imageValue.get())->cachedOrPendi
ngImageSet(deviceScaleFactor); | 158 return toCSSImageSetValue(m_imageValue.get())->cachedOrPendingImageSet(d
eviceScaleFactor); |
159 | 159 |
160 if (!m_image) | 160 if (!m_image) |
161 m_image = StylePendingImage::create(this); | 161 m_image = StylePendingImage::create(this); |
162 | 162 |
163 return m_image.get(); | 163 return m_image.get(); |
164 } | 164 } |
165 | 165 |
166 bool CSSCursorImageValue::isSVGCursor() const | 166 bool CSSCursorImageValue::isSVGCursor() const |
167 { | 167 { |
168 if (m_imageValue->isImageValue()) { | 168 if (m_imageValue->isImageValue()) { |
(...skipping 22 matching lines...) Expand all Loading... |
191 m_referencedElements.remove(element); | 191 m_referencedElements.remove(element); |
192 } | 192 } |
193 | 193 |
194 bool CSSCursorImageValue::equals(const CSSCursorImageValue& other) const | 194 bool CSSCursorImageValue::equals(const CSSCursorImageValue& other) const |
195 { | 195 { |
196 return m_hasHotSpot ? other.m_hasHotSpot && m_hotSpot == other.m_hotSpot : !
other.m_hasHotSpot | 196 return m_hasHotSpot ? other.m_hasHotSpot && m_hotSpot == other.m_hotSpot : !
other.m_hasHotSpot |
197 && compareCSSValuePtr(m_imageValue, other.m_imageValue); | 197 && compareCSSValuePtr(m_imageValue, other.m_imageValue); |
198 } | 198 } |
199 | 199 |
200 } // namespace WebCore | 200 } // namespace WebCore |
OLD | NEW |