[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdenonbeta/ksvg2/impl
From: Nikolas Zimmermann <wildfox () kde ! org>
Date: 2005-02-04 15:33:32
Message-ID: 20050204153332.678291D00C () office ! kde ! org
[Download RAW message or body]
CVS commit by wildfox:
This fixes inner svg viewport element clipping, still masking-vportClip is flaky
M +2 -2 SVGElementImpl.h 1.22
M +8 -3 SVGSVGElementImpl.cc 1.33
M +8 -2 SVGStyledElementImpl.cc 1.66
--- kdenonbeta/ksvg2/impl/SVGElementImpl.h #1.21:1.22
@@ -24,8 +24,7 @@
#define KSVG_SVGElementImpl_H
+#include <ksvg2/impl/svgtags.h>
#include <kdom/impl/XMLElementImpl.h>
-#include "svgtags.h"
-
namespace KDOM
{
@@ -35,4 +34,5 @@ namespace KDOM
namespace KSVG
{
+ class SVGMatrixImpl;
class SVGSVGElementImpl;
class SVGStyledElementImpl;
--- kdenonbeta/ksvg2/impl/SVGSVGElementImpl.cc #1.32:1.33
@@ -25,4 +25,5 @@
#include <kcanvas/KCanvas.h>
+#include <kcanvas/KCanvasMatrix.h>
#include <kcanvas/KCanvasCreator.h>
#include <kcanvas/KCanvasRegistry.h>
@@ -300,10 +301,14 @@ QString SVGSVGElementImpl::adjustViewpor
m_clipper->resetClipData();
- KCPathDataList pathData = \
KCanvasCreator::self()->createRectangle(x()->baseVal()->value(),
- \
y()->baseVal()->value(), + SVGMatrixImpl *ctm = getCTM();
+ KCanvasMatrix matrix = ctm->qmatrix();
+ ctm->deref();
+
+ KCPathDataList pathData = \
KCanvasCreator::self()->createRectangle(-x()->baseVal()->value(), + \
-y()->baseVal()->value(), width()->baseVal()->value(),
\
height()->baseVal()->value());
- m_clipper->addClipData(pathData, RULE_NONZERO, false);
+ m_clipper->addClipData(matrix.map(pathData), RULE_NONZERO, false);
return key;
}
--- kdenonbeta/ksvg2/impl/SVGStyledElementImpl.cc #1.65:1.66
@@ -34,4 +34,5 @@
#include "SVGElementImpl.h"
#include "SVGDocumentImpl.h"
+#include "SVGSVGElementImpl.h"
#include "SVGCSSStyleSelector.h"
#include "SVGTransformableImpl.h"
@@ -173,6 +174,11 @@ void SVGStyledElementImpl::finalizeStyle
style->updateStroke(m_canvasItem);
- if(viewportElement())
- style->addClipPath("#" + \
viewportElement()->adjustViewportClipping()); + SVGElementImpl *viewport = \
viewportElement(); + if(viewport)
+ {
+ QString reference = ("#" + viewport->adjustViewportClipping());
+ if(!reference.isEmpty())
+ style->addClipPath(reference);
+ }
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic