[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