summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pdf/pdf_interpret.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/pdf/pdf_interpret.c b/pdf/pdf_interpret.c
index 0513c622..2f160eef 100644
--- a/pdf/pdf_interpret.c
+++ b/pdf/pdf_interpret.c
@@ -335,6 +335,7 @@ pdf_begin_group(pdf_csi *csi, const fz_rect *bbox)
fz_rect mask_bbox = softmask->bbox;
fz_matrix save_ctm = gstate->ctm;
+ fz_transform_rect(&mask_bbox, &softmask->matrix);
fz_transform_rect(&mask_bbox, &gstate->softmask_ctm);
gstate->softmask = NULL;
gstate->ctm = gstate->softmask_ctm;
@@ -1614,7 +1615,9 @@ pdf_run_extgstate(pdf_csi *csi, pdf_obj *rdb, pdf_obj *extgstate)
if (!colorspace)
colorspace = fz_device_gray;
- fz_concat(&gstate->softmask_ctm, &xobj->matrix, &gstate->ctm);
+ /* The softmask_ctm no longer has the softmask matrix rolled into it, as this
+ * causes the softmask matrix to be applied twice. */
+ gstate->softmask_ctm = gstate->ctm;
gstate->softmask = xobj;
for (k = 0; k < colorspace->n; k++)
gstate->softmask_bc[k] = 0;