| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> |
| 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Rob Buis <buis@kde.org> |
| 4 * Copyright (C) 2007 Apple Inc. All rights reserved. | 4 * Copyright (C) 2007 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 698 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 709 if (renderer && (hadUseCurrentView || m_useCurrentView)) | 709 if (renderer && (hadUseCurrentView || m_useCurrentView)) |
| 710 RenderSVGResource::markForLayoutAndParentResourceInvalidation(render
er); | 710 RenderSVGResource::markForLayoutAndParentResourceInvalidation(render
er); |
| 711 return; | 711 return; |
| 712 } | 712 } |
| 713 | 713 |
| 714 // Spec: If the SVG fragment identifier addresses a ‘view’ element within an
SVG document (e.g., MyDrawing.svg#MyView | 714 // Spec: If the SVG fragment identifier addresses a ‘view’ element within an
SVG document (e.g., MyDrawing.svg#MyView |
| 715 // or MyDrawing.svg#xpointer(id('MyView'))) then the closest ancestor ‘svg’
element is displayed in the viewport. | 715 // or MyDrawing.svg#xpointer(id('MyView'))) then the closest ancestor ‘svg’
element is displayed in the viewport. |
| 716 // Any view specification attributes included on the given ‘view’ element ov
erride the corresponding view specification | 716 // Any view specification attributes included on the given ‘view’ element ov
erride the corresponding view specification |
| 717 // attributes on the closest ancestor ‘svg’ element. | 717 // attributes on the closest ancestor ‘svg’ element. |
| 718 if (anchorNode && anchorNode->hasTagName(SVGNames::viewTag)) { | 718 if (anchorNode && anchorNode->hasTagName(SVGNames::viewTag)) { |
| 719 if (SVGViewElement* viewElement = anchorNode->hasTagName(SVGNames::viewT
ag) ? static_cast<SVGViewElement*>(anchorNode) : 0) { | 719 SVGViewElement* viewElement = toSVGViewElement(anchorNode); |
| 720 SVGElement* element = SVGLocatable::nearestViewportElement(viewEleme
nt); | 720 if (!viewElement) |
| 721 if (element->hasTagName(SVGNames::svgTag)) { | 721 return; |
| 722 SVGSVGElement* svg = toSVGSVGElement(element); | |
| 723 svg->inheritViewAttributes(viewElement); | |
| 724 | 722 |
| 725 if (RenderObject* renderer = svg->renderer()) | 723 SVGElement* element = SVGLocatable::nearestViewportElement(viewElement); |
| 726 RenderSVGResource::markForLayoutAndParentResourceInvalidatio
n(renderer); | 724 if (element->hasTagName(SVGNames::svgTag)) { |
| 727 } | 725 SVGSVGElement* svg = toSVGSVGElement(element); |
| 726 svg->inheritViewAttributes(viewElement); |
| 727 |
| 728 if (RenderObject* renderer = svg->renderer()) |
| 729 RenderSVGResource::markForLayoutAndParentResourceInvalidation(re
nderer); |
| 728 } | 730 } |
| 729 return; | |
| 730 } | 731 } |
| 731 | 732 |
| 732 // FIXME: We need to decide which <svg> to focus on, and zoom to it. | 733 // FIXME: We need to decide which <svg> to focus on, and zoom to it. |
| 733 // FIXME: We need to actually "highlight" the viewTarget(s). | 734 // FIXME: We need to actually "highlight" the viewTarget(s). |
| 734 } | 735 } |
| 735 | 736 |
| 736 void SVGSVGElement::inheritViewAttributes(SVGViewElement* viewElement) | 737 void SVGSVGElement::inheritViewAttributes(SVGViewElement* viewElement) |
| 737 { | 738 { |
| 738 SVGViewSpec* view = currentView(); | 739 SVGViewSpec* view = currentView(); |
| 739 m_useCurrentView = true; | 740 m_useCurrentView = true; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 769 continue; | 770 continue; |
| 770 | 771 |
| 771 Element* element = toElement(node); | 772 Element* element = toElement(node); |
| 772 if (element->getIdAttribute() == id) | 773 if (element->getIdAttribute() == id) |
| 773 return element; | 774 return element; |
| 774 } | 775 } |
| 775 return 0; | 776 return 0; |
| 776 } | 777 } |
| 777 | 778 |
| 778 } | 779 } |
| OLD | NEW |