summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-interpret.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf/pdf-interpret.c')
-rw-r--r--source/pdf/pdf-interpret.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/source/pdf/pdf-interpret.c b/source/pdf/pdf-interpret.c
index 62173cf8..0ed30026 100644
--- a/source/pdf/pdf-interpret.c
+++ b/source/pdf/pdf-interpret.c
@@ -179,17 +179,18 @@ pdf_is_hidden_ocg(pdf_obj *ocg, pdf_csi *csi, pdf_obj *rdb)
if (strcmp(type, "OCG") == 0)
{
/* An Optional Content Group */
+ int default_value = 0;
int num = pdf_to_num(ocg);
int gen = pdf_to_gen(ocg);
int len = desc->len;
int i;
+ /* by default an OCG is visible, unless it's explicitly hidden */
for (i = 0; i < len; i++)
{
if (desc->ocgs[i].num == num && desc->ocgs[i].gen == gen)
{
- if (desc->ocgs[i].state == 0)
- return 1; /* If off, hidden */
+ default_value = desc->ocgs[i].state == 0;
break;
}
}
@@ -234,7 +235,7 @@ pdf_is_hidden_ocg(pdf_obj *ocg, pdf_csi *csi, pdf_obj *rdb)
* dicts, this is not really a problem. */
obj = pdf_dict_gets(ocg, "Usage");
if (!pdf_is_dict(obj))
- return 0;
+ return default_value;
/* FIXME: Should look at Zoom (and return hidden if out of
* max/min range) */
/* FIXME: Could provide hooks to the caller to check if
@@ -244,7 +245,11 @@ pdf_is_hidden_ocg(pdf_obj *ocg, pdf_csi *csi, pdf_obj *rdb)
{
return 1;
}
- return 0;
+ if (strcmp(pdf_to_name(pdf_dict_gets(obj2, event_state)), "ON") == 0)
+ {
+ return 0;
+ }
+ return default_value;
}
else if (strcmp(type, "OCMD") == 0)
{