summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Bünzli <zeniko@gmail.com>2013-09-25 15:40:24 +0200
committerRobin Watts <robin.watts@artifex.com>2013-09-27 17:09:46 +0100
commit4c6b5be38d6ac65f81086843a42a186ed1df379c (patch)
tree652c8377f6add698ab33ad53b0323227b248d1d2
parenta4b58d62b59d95152ebe76f34f43bc110387b193 (diff)
downloadmupdf-4c6b5be38d6ac65f81086843a42a186ed1df379c.tar.xz
don't reset the clipping rectangle for accumulated text
FZ_CMD_CLIP_TEXT behaves quite differently whether the accumulate flag is set or not (see fz_list_clip_text). fz_run_display_list handles this correctly but fz_append_display_node doesn't do so yet.
-rw-r--r--source/fitz/list-device.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/source/fitz/list-device.c b/source/fitz/list-device.c
index abe2ad8f..529e0bbf 100644
--- a/source/fitz/list-device.c
+++ b/source/fitz/list-device.c
@@ -115,8 +115,12 @@ fz_append_display_node(fz_display_list *list, fz_display_node *node)
}
list->top++;
break;
- case FZ_CMD_END_MASK:
case FZ_CMD_CLIP_TEXT:
+ /* don't reset the clip rect for accumulated text */
+ if (node->flag == 2)
+ break;
+ /* fallthrough */
+ case FZ_CMD_END_MASK:
case FZ_CMD_CLIP_STROKE_TEXT:
if (list->top < STACK_SIZE)
{