diff options
author | Martin Kretzschmar <mkretzschmar@src.gnome.org> | 2002-09-18 20:32:18 (GMT) |
---|---|---|
committer | Martin Kretzschmar <mkretzschmar@src.gnome.org> | 2002-09-18 20:32:18 (GMT) |
commit | 7aac8dc8533347e21311b15186e0af82f1b22fd6 (patch) | |
tree | 02650bb02c8a1d8468c22f50ff151885d233016b /pdf/xpdf/Link.cc | |
parent | d99fb4f4acd14fcdbda968abd907547dcc7af40c (diff) |
Synched with Xpdf 0.92
this adds "decryption" support
testing this code after six weeks immediately gives me segfaults (image drawing) :-O
must have fixed that later without knowing :-O
Diffstat (limited to 'pdf/xpdf/Link.cc')
-rw-r--r-- | pdf/xpdf/Link.cc | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/pdf/xpdf/Link.cc b/pdf/xpdf/Link.cc index 538618b..adb8c97 100644 --- a/pdf/xpdf/Link.cc +++ b/pdf/xpdf/Link.cc @@ -364,6 +364,23 @@ LinkURI::~LinkURI() { } //------------------------------------------------------------------------ +// LinkNamed +//------------------------------------------------------------------------ + +LinkNamed::LinkNamed(Object *nameObj) { + name = NULL; + if (nameObj->isName()) { + name = new GString(nameObj->getName()); + } +} + +LinkNamed::~LinkNamed() { + if (name) { + delete name; + } +} + +//------------------------------------------------------------------------ // LinkUnknown //------------------------------------------------------------------------ @@ -472,6 +489,12 @@ Link::Link(Dict *dict, GString *baseURI) { action = new LinkURI(&obj3, baseURI); obj3.free(); + // Named action + } else if (obj2.isName("Named")) { + obj1.dictLookup("N", &obj3); + action = new LinkNamed(&obj3); + obj3.free(); + // unknown action } else if (obj2.isName()) { action = new LinkUnknown(obj2.getName()); @@ -557,9 +580,7 @@ LinkAction *Links::find(double x, double y) { for (i = 0; i < numLinks; ++i) { if (links[i]->inRect(x, y)) { - if (links[i]->getAction()) - return links[i]->getAction(); - return NULL; + return links[i]->getAction(); } } return NULL; |