diff options
| author | Alvin Penner <penner@vaxxine.com> | 2012-03-18 11:34:37 +0000 |
|---|---|---|
| committer | apenner <penner@vaxxine.com> | 2012-03-18 11:34:37 +0000 |
| commit | 1a9c63e1364d10040ff36949c1f7d650aff426b9 (patch) | |
| tree | a5ea2ccf436b811424bf4d4dc1164539887d614d /src/extension/internal/pdfinput/pdf-parser.cpp | |
| parent | Fix for 950508 : Fill Stroke : Minor visual enhancements, fix for Opacity lab... (diff) | |
| download | inkscape-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.cpp | 11 |
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); |
