summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/pdfinput/pdf-parser.cpp
diff options
context:
space:
mode:
authorAlvin Penner <penner@vaxxine.com>2012-03-18 11:34:37 +0000
committerapenner <penner@vaxxine.com>2012-03-18 11:34:37 +0000
commit1a9c63e1364d10040ff36949c1f7d650aff426b9 (patch)
treea5ea2ccf436b811424bf4d4dc1164539887d614d /src/extension/internal/pdfinput/pdf-parser.cpp
parentFix for 950508 : Fill Stroke : Minor visual enhancements, fix for Opacity lab... (diff)
downloadinkscape-1a9c63e1364d10040ff36949c1f7d650aff426b9.tar.gz
inkscape-1a9c63e1364d10040ff36949c1f7d650aff426b9.zip
pdf import. transform the bbox associated with a clip path (Bug 919176)
Fixed bugs: - https://launchpad.net/bugs/919176 (bzr r11094)
Diffstat (limited to 'src/extension/internal/pdfinput/pdf-parser.cpp')
-rw-r--r--src/extension/internal/pdfinput/pdf-parser.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
index 1c21fbca3..3b19f925e 100644
--- a/src/extension/internal/pdfinput/pdf-parser.cpp
+++ b/src/extension/internal/pdfinput/pdf-parser.cpp
@@ -1619,6 +1619,7 @@ void PdfParser::opShFill(Object args[], int /*numArgs*/)
GfxShading *shading = 0;
GfxPath *savedPath = NULL;
double xMin, yMin, xMax, yMax;
+ double xTemp, yTemp;
double gradientTransform[6];
double *matrix = NULL;
GBool savedState = gFalse;
@@ -1668,6 +1669,16 @@ void PdfParser::opShFill(Object args[], int /*numArgs*/)
// clip to bbox
if (shading->getHasBBox()) {
shading->getBBox(&xMin, &yMin, &xMax, &yMax);
+ if (matrix != NULL) {
+ xTemp = matrix[0]*xMin + matrix[2]*yMin + matrix[4];
+ yTemp = matrix[1]*xMin + matrix[3]*yMin + matrix[5];
+ xMin = xTemp;
+ yMin = yTemp;
+ xTemp = matrix[0]*xMax + matrix[2]*yMax + matrix[4];
+ yTemp = matrix[1]*xMax + matrix[3]*yMax + matrix[5];
+ xMax = xTemp;
+ yMax = yTemp;
+ }
state->moveTo(xMin, yMin);
state->lineTo(xMax, yMin);
state->lineTo(xMax, yMax);