summaryrefslogtreecommitdiff
path: root/source/fitz/list-device.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/fitz/list-device.c')
-rw-r--r--source/fitz/list-device.c23
1 files changed, 6 insertions, 17 deletions
diff --git a/source/fitz/list-device.c b/source/fitz/list-device.c
index ea61b3d2..14e2278c 100644
--- a/source/fitz/list-device.c
+++ b/source/fitz/list-device.c
@@ -194,12 +194,8 @@ fz_append_display_node(
}
writer->top++;
break;
- case FZ_CMD_CLIP_TEXT:
- /* don't reset the clip rect for accumulated text */
- if (flags == 2)
- break;
- /* fallthrough */
case FZ_CMD_END_MASK:
+ case FZ_CMD_CLIP_TEXT:
case FZ_CMD_CLIP_STROKE_TEXT:
if (writer->top < STACK_SIZE)
{
@@ -840,22 +836,19 @@ fz_list_stroke_text(fz_context *ctx, fz_device *dev, fz_text *text, fz_stroke_st
}
static void
-fz_list_clip_text(fz_context *ctx, fz_device *dev, fz_text *text, const fz_matrix *ctm, int accumulate)
+fz_list_clip_text(fz_context *ctx, fz_device *dev, fz_text *text, const fz_matrix *ctm)
{
fz_rect rect;
fz_text *cloned_text = fz_keep_text(ctx, text);
fz_try(ctx)
{
- if (accumulate)
- rect = fz_infinite_rect;
- else
- fz_bound_text(ctx, text, NULL, ctm, &rect);
+ fz_bound_text(ctx, text, NULL, ctm, &rect);
fz_append_display_node(
ctx,
dev,
FZ_CMD_CLIP_TEXT,
- accumulate, /* flags */
+ 0, /* flags */
&rect,
NULL, /* path */
NULL, /* color */
@@ -1636,17 +1629,13 @@ fz_run_display_list(fz_context *ctx, fz_display_list *list, fz_device *dev, cons
{
case FZ_CMD_CLIP_PATH:
case FZ_CMD_CLIP_STROKE_PATH:
+ case FZ_CMD_CLIP_TEXT:
case FZ_CMD_CLIP_STROKE_TEXT:
case FZ_CMD_CLIP_IMAGE_MASK:
case FZ_CMD_BEGIN_MASK:
case FZ_CMD_BEGIN_GROUP:
clipped++;
continue;
- case FZ_CMD_CLIP_TEXT:
- /* Accumulated text has no extra pops */
- if (n.flags != 2)
- clipped++;
- continue;
case FZ_CMD_POP_CLIP:
case FZ_CMD_END_GROUP:
if (!clipped)
@@ -1694,7 +1683,7 @@ visible:
fz_stroke_text(ctx, dev, *(fz_text **)node, stroke, &trans_ctm, colorspace, color, alpha);
break;
case FZ_CMD_CLIP_TEXT:
- fz_clip_text(ctx, dev, *(fz_text **)node, &trans_ctm, n.flags);
+ fz_clip_text(ctx, dev, *(fz_text **)node, &trans_ctm);
break;
case FZ_CMD_CLIP_STROKE_TEXT:
fz_clip_stroke_text(ctx, dev, *(fz_text **)node, stroke, &trans_ctm);