| 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, 2007 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> |
| 4 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. | 4 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. |
| 5 * Copyright (C) 2011 Torch Mobile (Beijing) Co. Ltd. All rights reserved. | 5 * Copyright (C) 2011 Torch Mobile (Beijing) Co. Ltd. All rights reserved. |
| 6 * Copyright (C) 2012 University of Szeged | 6 * Copyright (C) 2012 University of Szeged |
| 7 * Copyright (C) 2012 Renata Hodovan <reni@webkit.org> | 7 * Copyright (C) 2012 Renata Hodovan <reni@webkit.org> |
| 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 725 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 736 || m_width->currentValue()->isRelative() | 736 || m_width->currentValue()->isRelative() |
| 737 || m_height->currentValue()->isRelative()) | 737 || m_height->currentValue()->isRelative()) |
| 738 return true; | 738 return true; |
| 739 | 739 |
| 740 if (!m_targetElementInstance) | 740 if (!m_targetElementInstance) |
| 741 return false; | 741 return false; |
| 742 | 742 |
| 743 return m_targetElementInstance->hasRelativeLengths(); | 743 return m_targetElementInstance->hasRelativeLengths(); |
| 744 } | 744 } |
| 745 | 745 |
| 746 FloatRect SVGUseElement::getBBox() |
| 747 { |
| 748 document().updateLayoutIgnorePendingStylesheets(); |
| 749 |
| 750 if (!layoutObject()) |
| 751 return FloatRect(); |
| 752 |
| 753 LayoutSVGTransformableContainer& transformableContainer = toLayoutSVGTransfo
rmableContainer(*layoutObject()); |
| 754 // Don't apply the additional translation if the oBB is invalid. |
| 755 if (!transformableContainer.isObjectBoundingBoxValid()) |
| 756 return FloatRect(); |
| 757 |
| 758 // TODO(fs): Preferably this would just use objectBoundingBox() (and hence |
| 759 // don't need to override SVGGraphicsElement::getBBox at all) and be |
| 760 // correct without additional work. That will not work out ATM without |
| 761 // additional quirks. The problem stems from including the additional |
| 762 // translation directly on the LayoutObject corresponding to the |
| 763 // SVGUseElement. |
| 764 FloatRect bbox = transformableContainer.objectBoundingBox(); |
| 765 bbox.move(transformableContainer.additionalTranslation()); |
| 766 return bbox; |
| 767 } |
| 768 |
| 746 void SVGUseElement::dispatchPendingEvent(SVGUseEventSender* eventSender) | 769 void SVGUseElement::dispatchPendingEvent(SVGUseEventSender* eventSender) |
| 747 { | 770 { |
| 748 ASSERT_UNUSED(eventSender, eventSender == &svgUseLoadEventSender()); | 771 ASSERT_UNUSED(eventSender, eventSender == &svgUseLoadEventSender()); |
| 749 ASSERT(isStructurallyExternal() && m_haveFiredLoadEvent); | 772 ASSERT(isStructurallyExternal() && m_haveFiredLoadEvent); |
| 750 dispatchEvent(Event::create(EventTypeNames::load)); | 773 dispatchEvent(Event::create(EventTypeNames::load)); |
| 751 } | 774 } |
| 752 | 775 |
| 753 void SVGUseElement::notifyFinished(Resource* resource) | 776 void SVGUseElement::notifyFinished(Resource* resource) |
| 754 { | 777 { |
| 755 if (!inDocument()) | 778 if (!inDocument()) |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 796 | 819 |
| 797 if (m_resource) | 820 if (m_resource) |
| 798 m_resource->removeClient(this); | 821 m_resource->removeClient(this); |
| 799 | 822 |
| 800 m_resource = resource; | 823 m_resource = resource; |
| 801 if (m_resource) | 824 if (m_resource) |
| 802 m_resource->addClient(this); | 825 m_resource->addClient(this); |
| 803 } | 826 } |
| 804 | 827 |
| 805 } | 828 } |
| OLD | NEW |