Changeset 12103 in webkit


Ignore:
Timestamp:
Jan 14, 2006 9:43:30 PM (18 years ago)
Author:
eseidel
Message:

2006-01-14 Eric Seidel <eseidel@apple.com>

Reviewed by darin.

Implement basic <foreignObject> support:
http://bugzilla.opendarwin.org/show_bug.cgi?id=5974
Also fixed <image> to support clip, filter and mask
Updated <text> to support hit testing and clip, filter, mask

  • WebCore.xcodeproj/project.pbxproj: added files.
  • kcanvas/RenderForeignObject.cpp: Added. (RenderForeignObject::RenderForeignObject): (RenderForeignObject::translationForAttributes): (RenderForeignObject::paint): (RenderForeignObject::nodeAtPoint):
  • kcanvas/RenderForeignObject.h: Added. (RenderForeignObject::renderName): added. (RenderForeignObject::localTransform): added. (RenderForeignObject::setLocalTransform): added.
  • kcanvas/RenderSVGImage.cpp: (RenderSVGImage::paint): added filter, clip mask support
  • kcanvas/RenderSVGImage.h: (KSVG::RenderSVGImage::localTransform): added. (KSVG::RenderSVGImage::setLocalTransform): added.
  • kcanvas/RenderSVGText.cpp: (RenderSVGText::translationTopToBaseline): return qmatrix (RenderSVGText::translationForAttributes): return qmatrix (RenderSVGText::paint): added filter, clip, mask support (RenderSVGText::nodeAtPoint): added.
  • kcanvas/RenderSVGText.h: (RenderSVGText::localTransform): added. (RenderSVGText::setLocalTransform): added.
  • khtml/rendering/render_object.h: (khtml::RenderObject::setLocalTransform): added assert(0)
  • ksvg2/css/svg.css: added foreignObject display: block
  • ksvg2/svg/SVGForeignObjectElementImpl.cpp: Added. (KSVG::SVGForeignObjectElementImpl::SVGForeignObjectElementImpl): (KSVG::SVGForeignObjectElementImpl::~SVGForeignObjectElementImpl): (KSVG::SVGForeignObjectElementImpl::x): (KSVG::SVGForeignObjectElementImpl::y): (KSVG::SVGForeignObjectElementImpl::width): (KSVG::SVGForeignObjectElementImpl::height): (KSVG::SVGForeignObjectElementImpl::parseMappedAttribute): (KSVG::SVGForeignObjectElementImpl::createRenderer): (KSVG::SVGForeignObjectElementImpl::childShouldCreateRenderer):
  • ksvg2/svg/SVGForeignObjectElementImpl.h: Added. (KSVG::SVGForeignObjectElementImpl::isValid): added (KSVG::SVGForeignObjectElementImpl::rendererIsNeeded): added
  • ksvg2/svg/SVGImageElementImpl.cpp: (SVGImageElementImpl::attach): fixed static_cast
  • ksvg2/svg/SVGLocatableImpl.cpp: (SVGLocatableImpl::nearestViewportElement): foreignObject support (SVGLocatableImpl::farthestViewportElement): foreignObject support
  • ksvg2/svg/svgtags.in: added foreignObject
  • kwq/KWQWMatrix.cpp: (QWMatrix::isInvertible): fixed
Location:
trunk
Files:
23 added
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r12093 r12103  
     12006-01-14  Eric Seidel  <eseidel@apple.com>
     2
     3        Reviewed by darin.
     4
     5        Implement basic <foreignObject> support:
     6        http://bugzilla.opendarwin.org/show_bug.cgi?id=5974
     7        Also fixed <image> to support clip, filter and mask
     8        Updated <text> to support hit testing and clip, filter, mask
     9
     10        * svg/W3C-SVG-1.1/filters-light-01-f-expected.checksum:
     11        * svg/W3C-SVG-1.1/filters-light-01-f-expected.png:
     12        * svg/custom/foreign-object-skew-expected.checksum: Added.
     13        * svg/custom/foreign-object-skew-expected.png: Added.
     14        * svg/custom/foreign-object-skew-expected.txt: Added.
     15        * svg/custom/foreign-object-skew.svg: Added.
     16        * svg/custom/image-with-transform-clip-filter-expected.checksum: Added.
     17        * svg/custom/image-with-transform-clip-filter-expected.png: Added.
     18        * svg/custom/image-with-transform-clip-filter-expected.txt: Added.
     19        * svg/custom/image-with-transform-clip-filter.svg: Added.
     20        * svg/custom/resources: Added.
     21        * svg/custom/resources/green-checker.png: Added.
     22        * svg/custom/resources/red-checker.png: Added.
     23        * svg/custom/text-clip-expected.checksum: Added.
     24        * svg/custom/text-clip-expected.png: Added.
     25        * svg/custom/text-clip-expected.txt: Added.
     26        * svg/custom/text-clip.svg: Added.
     27        * svg/custom/text-filter-expected.checksum: Added.
     28        * svg/custom/text-filter-expected.png: Added.
     29        * svg/custom/text-filter-expected.txt: Added.
     30        * svg/custom/text-filter.svg: Added.
     31
    1322006-01-14  Eric Seidel  <eseidel@apple.com>
    233
  • trunk/LayoutTests/svg/W3C-SVG-1.1/filters-light-01-f-expected.checksum

    r12016 r12103  
    1 7141014b9390f0541b05a4d0a61b4901
     1767cc8c8d32425f9016feba9a49bc0c1
  • trunk/WebCore/ChangeLog

    r12102 r12103  
    121121        * platform/ArrayImpl.h:
    122122        * platform/Shared.h: Added.
     123
     1242006-01-14  Eric Seidel  <eseidel@apple.com>
     125
     126        Reviewed by darin.
     127
     128        Implement basic <foreignObject> support:
     129        http://bugzilla.opendarwin.org/show_bug.cgi?id=5974
     130        Also fixed <image> to support clip, filter and mask
     131        Updated <text> to support hit testing and clip, filter, mask
     132
     133        * WebCore.xcodeproj/project.pbxproj: added files.
     134        * kcanvas/RenderForeignObject.cpp: Added.
     135        (RenderForeignObject::RenderForeignObject):
     136        (RenderForeignObject::translationForAttributes):
     137        (RenderForeignObject::paint):
     138        (RenderForeignObject::nodeAtPoint):
     139        * kcanvas/RenderForeignObject.h: Added.
     140        (RenderForeignObject::renderName): added.
     141        (RenderForeignObject::localTransform): added.
     142        (RenderForeignObject::setLocalTransform): added.
     143        * kcanvas/RenderSVGImage.cpp:
     144        (RenderSVGImage::paint): added filter, clip mask support
     145        * kcanvas/RenderSVGImage.h:
     146        (KSVG::RenderSVGImage::localTransform): added.
     147        (KSVG::RenderSVGImage::setLocalTransform): added.
     148        * kcanvas/RenderSVGText.cpp:
     149        (RenderSVGText::translationTopToBaseline): return qmatrix
     150        (RenderSVGText::translationForAttributes): return qmatrix
     151        (RenderSVGText::paint): added filter, clip, mask support
     152        (RenderSVGText::nodeAtPoint): added.
     153        * kcanvas/RenderSVGText.h:
     154        (RenderSVGText::localTransform): added.
     155        (RenderSVGText::setLocalTransform): added.
     156        * khtml/rendering/render_object.h:
     157        (khtml::RenderObject::setLocalTransform): added assert(0)
     158        * ksvg2/css/svg.css: added foreignObject display: block
     159        * ksvg2/svg/SVGForeignObjectElementImpl.cpp: Added.
     160        (KSVG::SVGForeignObjectElementImpl::SVGForeignObjectElementImpl):
     161        (KSVG::SVGForeignObjectElementImpl::~SVGForeignObjectElementImpl):
     162        (KSVG::SVGForeignObjectElementImpl::x):
     163        (KSVG::SVGForeignObjectElementImpl::y):
     164        (KSVG::SVGForeignObjectElementImpl::width):
     165        (KSVG::SVGForeignObjectElementImpl::height):
     166        (KSVG::SVGForeignObjectElementImpl::parseMappedAttribute):
     167        (KSVG::SVGForeignObjectElementImpl::createRenderer):
     168        (KSVG::SVGForeignObjectElementImpl::childShouldCreateRenderer):
     169        * ksvg2/svg/SVGForeignObjectElementImpl.h: Added.
     170        (KSVG::SVGForeignObjectElementImpl::isValid): added
     171        (KSVG::SVGForeignObjectElementImpl::rendererIsNeeded): added
     172        * ksvg2/svg/SVGImageElementImpl.cpp:
     173        (SVGImageElementImpl::attach): fixed static_cast
     174        * ksvg2/svg/SVGLocatableImpl.cpp:
     175        (SVGLocatableImpl::nearestViewportElement): foreignObject support
     176        (SVGLocatableImpl::farthestViewportElement): foreignObject support
     177        * ksvg2/svg/svgtags.in: added foreignObject
     178        * kwq/KWQWMatrix.cpp:
     179        (QWMatrix::isInvertible): fixed
    123180
    1241812006-01-14  Eric Seidel  <eseidel@apple.com>
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r12101 r12103  
    15381538                A8FD8B86087CB44C00DC3707 /* KWQWMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A85D7A8C0879EC64006A9172 /* KWQWMatrix.cpp */; };
    15391539                A8FD8B87087CB45700DC3707 /* KWQWMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = A85D7A8D0879EC64006A9172 /* KWQWMatrix.h */; };
     1540                A8FEFB0A0979F472005839FD /* RenderForeignObject.h in Headers */ = {isa = PBXBuildFile; fileRef = A8FEFB080979F472005839FD /* RenderForeignObject.h */; };
     1541                A8FEFB0B0979F472005839FD /* RenderForeignObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8FEFB090979F472005839FD /* RenderForeignObject.cpp */; };
     1542                A8FEFB0C0979F472005839FD /* RenderForeignObject.h in Headers */ = {isa = PBXBuildFile; fileRef = A8FEFB080979F472005839FD /* RenderForeignObject.h */; };
     1543                A8FEFB0D0979F472005839FD /* RenderForeignObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8FEFB090979F472005839FD /* RenderForeignObject.cpp */; };
     1544                A8FEFB310979F4F6005839FD /* SVGForeignObjectElementImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8FEFB2F0979F4F6005839FD /* SVGForeignObjectElementImpl.cpp */; };
     1545                A8FEFB320979F4F6005839FD /* SVGForeignObjectElementImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = A8FEFB300979F4F6005839FD /* SVGForeignObjectElementImpl.h */; };
     1546                A8FEFB330979F4F6005839FD /* SVGForeignObjectElementImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8FEFB2F0979F4F6005839FD /* SVGForeignObjectElementImpl.cpp */; };
     1547                A8FEFB340979F4F6005839FD /* SVGForeignObjectElementImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = A8FEFB300979F4F6005839FD /* SVGForeignObjectElementImpl.h */; };
    15401548                BC179892088D975F006068A5 /* render_theme_mac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC17988F088D975F006068A5 /* render_theme_mac.mm */; };
    15411549                BC179893088D975F006068A5 /* render_theme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC179890088D975F006068A5 /* render_theme.cpp */; };
     
    24332441                A8C32D89093D8BFA000B9CAC /* xlinkattrs.in */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = text; path = xlinkattrs.in; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
    24342442                A8C32D96093D8EA4000B9CAC /* XLinkNamesWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XLinkNamesWrapper.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
     2443                A8FEFB080979F472005839FD /* RenderForeignObject.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderForeignObject.h; sourceTree = "<group>"; };
     2444                A8FEFB090979F472005839FD /* RenderForeignObject.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RenderForeignObject.cpp; sourceTree = "<group>"; };
     2445                A8FEFB2F0979F4F6005839FD /* SVGForeignObjectElementImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGForeignObjectElementImpl.cpp; sourceTree = "<group>"; };
     2446                A8FEFB300979F4F6005839FD /* SVGForeignObjectElementImpl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGForeignObjectElementImpl.h; sourceTree = "<group>"; };
    24352447                BC06F24906D18A7E004A6FA3 /* xsl_stylesheetimpl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; name = xsl_stylesheetimpl.cpp; path = xsl/xsl_stylesheetimpl.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
    24362448                BC06F24A06D18A7E004A6FA3 /* xsl_stylesheetimpl.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; name = xsl_stylesheetimpl.h; path = xsl/xsl_stylesheetimpl.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
     
    33883400                                A8C0F86B089701F300BA5114 /* SVGFitToViewBoxImpl.cpp */,
    33893401                                A8C0F86C089701F300BA5114 /* SVGFitToViewBoxImpl.h */,
     3402                                A8FEFB2F0979F4F6005839FD /* SVGForeignObjectElementImpl.cpp */,
     3403                                A8FEFB300979F4F6005839FD /* SVGForeignObjectElementImpl.h */,
    33903404                                A8C0F86D089701F300BA5114 /* SVGGElementImpl.cpp */,
    33913405                                A8C0F86E089701F300BA5114 /* SVGGElementImpl.h */,
     
    35293543                                65743B50097076F8001E7CEF /* RenderSVGText.cpp */,
    35303544                                65743B51097076F8001E7CEF /* RenderSVGText.h */,
     3545                                FAE0418A09759694000540BE /* RenderSVGImage.cpp */,
    35313546                                FAE0418909759694000540BE /* RenderSVGImage.h */,
    3532                                 FAE0418A09759694000540BE /* RenderSVGImage.cpp */,
     3547                                A8FEFB090979F472005839FD /* RenderForeignObject.cpp */,
     3548                                A8FEFB080979F472005839FD /* RenderForeignObject.h */,
    35333549                                A8C0FB53089701F700BA5114 /* device */,
    35343550                                A8C0FB7A089701F800BA5114 /* KCanvasContainer.cpp */,
     
    49664982                                BCB16C2F0979C3BD00467741 /* Request.h in Headers */,
    49674983                                BCFB2E5E0979E46400BA703D /* CachedObjectClient.h in Headers */,
     4984                                A8FEFB0A0979F472005839FD /* RenderForeignObject.h in Headers */,
     4985                                A8FEFB320979F4F6005839FD /* SVGForeignObjectElementImpl.h in Headers */,
    49684986                                BCFB2E840979FD4F00BA703D /* Shared.h in Headers */,
    49694987                        );
     
    53055323                                BCB16C480979C3BD00467741 /* Request.h in Headers */,
    53065324                                BCFB2E5F0979E46400BA703D /* CachedObjectClient.h in Headers */,
     5325                                A8FEFB0C0979F472005839FD /* RenderForeignObject.h in Headers */,
     5326                                A8FEFB340979F4F6005839FD /* SVGForeignObjectElementImpl.h in Headers */,
    53075327                                BCFB2E850979FD4F00BA703D /* Shared.h in Headers */,
    53085328                        );
     
    68486868                                BCB16C2C0979C3BD00467741 /* loader.cpp in Sources */,
    68496869                                BCB16C2E0979C3BD00467741 /* Request.cpp in Sources */,
     6870                                A8FEFB0B0979F472005839FD /* RenderForeignObject.cpp in Sources */,
     6871                                A8FEFB310979F4F6005839FD /* SVGForeignObjectElementImpl.cpp in Sources */,
    68506872                        );
    68516873                        runOnlyForDeploymentPostprocessing = 0;
     
    71417163                                BCB16C450979C3BD00467741 /* loader.cpp in Sources */,
    71427164                                BCB16C470979C3BD00467741 /* Request.cpp in Sources */,
     7165                                A8FEFB0D0979F472005839FD /* RenderForeignObject.cpp in Sources */,
     7166                                A8FEFB330979F4F6005839FD /* SVGForeignObjectElementImpl.cpp in Sources */,
    71437167                        );
    71447168                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/WebCore/kcanvas/RenderSVGImage.cpp

    r12085 r12103  
    6060    KRenderingDeviceContext *context = QPainter::renderingDevice()->currentContext();
    6161    context->concatCTM(QMatrix().translate(parentX, parentY));
     62    context->concatCTM(localTransform());
    6263    translateForAttributes();
    6364   
    6465    FloatRect boundingBox(0, 0, width(), height());
     66    const KSVG::SVGRenderStyle *svgStyle = style()->svgStyle();
    6567           
    66     if (KCanvasClipper *clipper = getClipperById(document(), style()->svgStyle()->clipPath().mid(1)))
     68    if (KCanvasClipper *clipper = getClipperById(document(), svgStyle->clipPath().mid(1)))
    6769        clipper->applyClip(boundingBox);
    6870
    69     if (KCanvasMasker *masker = getMaskerById(document(), style()->svgStyle()->maskElement().mid(1)))
     71    if (KCanvasMasker *masker = getMaskerById(document(), svgStyle->maskElement().mid(1)))
    7072        masker->applyMask(boundingBox);
    7173
    72     KCanvasFilter *filter = getFilterById(document(), style()->svgStyle()->filter().mid(1));
     74    KCanvasFilter *filter = getFilterById(document(), svgStyle->filter().mid(1));
    7375    if (filter)
    7476        filter->prepareFilter(boundingBox);
  • trunk/WebCore/kcanvas/RenderSVGImage.h

    r12017 r12103  
    3333        virtual ~RenderSVGImage();
    3434       
     35        virtual QMatrix localTransform() const { return m_transform; }
     36        virtual void setLocalTransform(const QMatrix& transform) { m_transform = transform; }
     37       
    3538        virtual void paint(PaintInfo& paintInfo, int parentX, int parentY);
    3639    private:
    3740        void translateForAttributes();
     41        QMatrix m_transform;
    3842    };
    3943};
  • trunk/WebCore/kcanvas/RenderSVGText.cpp

    r12025 r12103  
    3434}
    3535
    36 void RenderSVGText::translateTopToBaseline()
     36QMatrix RenderSVGText::translationTopToBaseline()
    3737{
    38     KRenderingDeviceContext *context = QPainter::renderingDevice()->currentContext();
    39 
    4038    int offset = baselinePosition(true, true);
    41     context->concatCTM(QMatrix().translate(0, -offset));
     39    return QMatrix().translate(0, -offset);
    4240}
    4341
    44 void RenderSVGText::translateForAttributes()
     42QMatrix RenderSVGText::translationForAttributes()
    4543{
    46     KRenderingDeviceContext *context = QPainter::renderingDevice()->currentContext();
    47 
    4844    KSVG::SVGTextElementImpl *text = static_cast<KSVG::SVGTextElementImpl *>(element());
    4945
     
    5147    float yOffset = text->y()->baseVal()->getFirst() ? text->y()->baseVal()->getFirst()->value() : 0;
    5248
    53     context->concatCTM(QMatrix().translate(xOffset, yOffset));
     49    return QMatrix().translate(xOffset, yOffset);
    5450}
    5551
     
    6258
    6359    KRenderingDeviceContext *context = QPainter::renderingDevice()->currentContext();
     60    context->concatCTM(localTransform());
    6461    context->concatCTM(QMatrix().translate(parentX, parentY));
    65     translateForAttributes();
    66     translateTopToBaseline();
     62    context->concatCTM(translationForAttributes());
     63    context->concatCTM(translationTopToBaseline());
    6764   
     65    FloatRect boundingBox(0, 0, width(), height());
     66    const KSVG::SVGRenderStyle *svgStyle = style()->svgStyle();
     67           
     68    if (KCanvasClipper *clipper = getClipperById(document(), svgStyle->clipPath().mid(1)))
     69        clipper->applyClip(boundingBox);
     70
     71    if (KCanvasMasker *masker = getMaskerById(document(), svgStyle->maskElement().mid(1)))
     72        masker->applyMask(boundingBox);
     73
     74    KCanvasFilter *filter = getFilterById(document(), svgStyle->filter().mid(1));
     75    if (filter)
     76        filter->prepareFilter(boundingBox);
     77       
    6878    RenderBlock::paint(paintInfo, 0, 0);
     79   
     80    if (filter)
     81        filter->applyFilter(boundingBox);
    6982
    7083    paintInfo.p->restore();
    7184}
     85
     86bool RenderSVGText::nodeAtPoint(NodeInfo& info, int _x, int _y, int _tx, int _ty, HitTestAction hitTestAction)
     87{
     88    QMatrix totalTransform = absoluteTransform();
     89    totalTransform *= localTransform();
     90    totalTransform *= translationForAttributes();
     91    totalTransform *= translationTopToBaseline();
     92    double localX, localY;
     93    totalTransform.invert().map(_x, _y, &localX, &localY);
     94    return RenderBlock::nodeAtPoint(info, (int)localX, (int)localY, _tx, _ty, hitTestAction);
     95}
  • trunk/WebCore/kcanvas/RenderSVGText.h

    r12022 r12103  
    3636
    3737    const char *renderName() const { return "RenderSVGText"; }
    38     void paint(PaintInfo& paintInfo, int parentX, int parentY);
     38    void paint(PaintInfo&, int parentX, int parentY);
     39   
     40    virtual QMatrix localTransform() const { return m_transform; }
     41    virtual void setLocalTransform(const QMatrix& transform) { m_transform = transform; }
     42   
     43    bool nodeAtPoint(NodeInfo&, int _x, int _y, int _tx, int _ty, HitTestAction);
    3944
    4045 private:
    41     void translateTopToBaseline();
    42     void translateForAttributes();
     46    QMatrix translationTopToBaseline();
     47    QMatrix translationForAttributes();
     48    QMatrix m_transform;
    4349};
    4450
  • trunk/WebCore/khtml/rendering/render_object.h

    r12092 r12103  
    285285    // We may eventually want to make these non-virtual
    286286    virtual QMatrix localTransform() const { return QMatrix(1, 0, 0, 1, xPos(), yPos()); }
    287     virtual void setLocalTransform(const QMatrix&) { }
     287    virtual void setLocalTransform(const QMatrix&) { assert(false); }
    288288    virtual QMatrix absoluteTransform() const;
    289289#endif
  • trunk/WebCore/ksvg2/css/svg.css

    r11962 r12103  
    4141}
    4242
    43 text
     43text, foreignObject
    4444{
    45     display: block;
     45    display: block !important;
    4646}
  • trunk/WebCore/ksvg2/svg/SVGImageElementImpl.cpp

    r12062 r12103  
    127127{
    128128    SVGStyledTransformableElementImpl::attach();
    129     if (khtml::RenderImage* imageObj = static_cast<khtml::RenderImage*>(renderer()))
     129    if (KSVG::RenderSVGImage* imageObj = static_cast<KSVG::RenderSVGImage*>(renderer()))
    130130        imageObj->setImage(m_imageLoader.image());
    131131}
  • trunk/WebCore/ksvg2/svg/SVGLocatableImpl.cpp

    r12085 r12103  
    4646    while (n && !n->isDocumentNode()) {
    4747        if (n->hasTagName(SVGNames::svgTag) || n->hasTagName(SVGNames::symbolTag) ||
    48             n->hasTagName(SVGNames::imageTag)) // FIXME: || n->hasTagName(SVGNames::foreignObjectTag)
     48            n->hasTagName(SVGNames::imageTag) || n->hasTagName(SVGNames::foreignObjectTag))
    4949            return static_cast<SVGElementImpl *>(n);
    5050
     
    6565    while (n && !n->isDocumentNode()) {
    6666        if (n->hasTagName(SVGNames::svgTag) || n->hasTagName(SVGNames::symbolTag) ||
    67             n->hasTagName(SVGNames::imageTag)) // FIXME: || n->hasTagName(SVGNames::foreignObjectTag)
     67            n->hasTagName(SVGNames::imageTag) || n->hasTagName(SVGNames::foreignObjectTag))
    6868            farthest = static_cast<SVGElementImpl *>(n);
    6969
  • trunk/WebCore/ksvg2/svg/svgtags.in

    r11962 r12103  
    4646#font_face_src
    4747#font_face_uri
    48 #foreignObject
     48foreignObject
    4949g
    5050#glyph
  • trunk/WebCore/kwq/KWQWMatrix.cpp

    r12085 r12103  
    109109bool QWMatrix::isInvertible() const
    110110{
    111     return det() == 0.0;
     111    return det() != 0.0;
    112112}
    113113
Note: See TracChangeset for help on using the changeset viewer.