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.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/source/fitz/list-device.c b/source/fitz/list-device.c
index 0a282018..ea61b3d2 100644
--- a/source/fitz/list-device.c
+++ b/source/fitz/list-device.c
@@ -115,6 +115,7 @@ struct fz_display_list_s
{
fz_storable storable;
fz_display_node *list;
+ fz_rect mediabox;
int max;
int len;
};
@@ -637,9 +638,14 @@ fz_append_display_node(
static void
fz_list_begin_page(fz_context *ctx, fz_device *dev, const fz_rect *mediabox, const fz_matrix *ctm)
{
+ fz_list_device *writer = (fz_list_device *)dev;
+ fz_display_list *list = writer->list;
fz_rect rect = *mediabox;
fz_transform_rect(&rect, ctm);
+
+ fz_union_rect(&list->mediabox, &rect);
+
fz_append_display_node(
ctx,
dev,
@@ -1405,6 +1411,7 @@ fz_new_display_list(fz_context *ctx)
fz_display_list *list = fz_malloc_struct(ctx, fz_display_list);
FZ_INIT_STORABLE(list, 1, fz_drop_display_list_imp);
list->list = NULL;
+ list->mediabox = fz_empty_rect;
list->max = 0;
list->len = 0;
return list;
@@ -1422,6 +1429,13 @@ fz_drop_display_list(fz_context *ctx, fz_display_list *list)
fz_drop_storable(ctx, &list->storable);
}
+fz_rect *
+fz_bound_display_list(fz_context *ctx, fz_display_list *list, fz_rect *bounds)
+{
+ *bounds = list->mediabox;
+ return bounds;
+}
+
void
fz_run_display_list(fz_context *ctx, fz_display_list *list, fz_device *dev, const fz_matrix *top_ctm, const fz_rect *scissor, fz_cookie *cookie)
{