summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/pdfinput/pdf-parser.cpp
diff options
context:
space:
mode:
authorDenis Declara <declara91@gmail.com>2012-03-26 15:59:00 +0000
committerDenis Declara <declara91@gmail.com>2012-03-26 15:59:00 +0000
commit8874f80dd60361ed721554497862ce3a6fb5ea8e (patch)
treefe114b3559c430d1a90f073a3458f4bd1c6d2285 /src/extension/internal/pdfinput/pdf-parser.cpp
parentAdded anchor-selection widget, it doesn't do much at the moment, next step wi... (diff)
parentpowerstroke: spiro join: more robust detection of tangent direction. fixes in... (diff)
downloadinkscape-8874f80dd60361ed721554497862ce3a6fb5ea8e.tar.gz
inkscape-8874f80dd60361ed721554497862ce3a6fb5ea8e.zip
Trunk merge
(bzr r11073.1.4)
Diffstat (limited to 'src/extension/internal/pdfinput/pdf-parser.cpp')
-rw-r--r--src/extension/internal/pdfinput/pdf-parser.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
index 3b19f925e..5347a85ac 100644
--- a/src/extension/internal/pdfinput/pdf-parser.cpp
+++ b/src/extension/internal/pdfinput/pdf-parser.cpp
@@ -1672,17 +1672,23 @@ void PdfParser::opShFill(Object args[], int /*numArgs*/)
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;
+ state->moveTo(xTemp, yTemp);
+ xTemp = matrix[0]*xMax + matrix[2]*yMin + matrix[4];
+ yTemp = matrix[1]*xMax + matrix[3]*yMin + matrix[5];
+ state->lineTo(xTemp, yTemp);
xTemp = matrix[0]*xMax + matrix[2]*yMax + matrix[4];
yTemp = matrix[1]*xMax + matrix[3]*yMax + matrix[5];
- xMax = xTemp;
- yMax = yTemp;
+ state->lineTo(xTemp, yTemp);
+ xTemp = matrix[0]*xMin + matrix[2]*yMax + matrix[4];
+ yTemp = matrix[1]*xMin + matrix[3]*yMax + matrix[5];
+ state->lineTo(xTemp, yTemp);
+ }
+ else {
+ state->moveTo(xMin, yMin);
+ state->lineTo(xMax, yMin);
+ state->lineTo(xMax, yMax);
+ state->lineTo(xMin, yMax);
}
- state->moveTo(xMin, yMin);
- state->lineTo(xMax, yMin);
- state->lineTo(xMax, yMax);
- state->lineTo(xMin, yMax);
state->closePath();
state->clip();
if (savedState)