X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=pdf%2Fxpdf%2FLink.cc;h=adb8c97faa8e70b13a21594ecea8f27b8aa61df4;hb=7aac8dc8533347e21311b15186e0af82f1b22fd6;hp=538618bcf9c00b11a8ad664df840f3e918de50d1;hpb=d99fb4f4acd14fcdbda968abd907547dcc7af40c;p=evince.git diff --git a/pdf/xpdf/Link.cc b/pdf/xpdf/Link.cc index 538618bc..adb8c97f 100644 --- a/pdf/xpdf/Link.cc +++ b/pdf/xpdf/Link.cc @@ -363,6 +363,23 @@ LinkURI::~LinkURI() { delete uri; } +//------------------------------------------------------------------------ +// 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;