X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=libdocument%2Fev-link.c;h=768b6873946189cc7448ee3bae44d5a384c1a083;hb=761de5f5ba44cc94c98adf2b68809ea453d6bdfa;hp=8561914b69935e5af88933eb31368f11c130ecb7;hpb=13a06349251874bd35d2f03c3fc93217cee749a2;p=evince.git diff --git a/libdocument/ev-link.c b/libdocument/ev-link.c index 8561914b..768b6873 100644 --- a/libdocument/ev-link.c +++ b/libdocument/ev-link.c @@ -18,6 +18,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. */ +#include #include "ev-link.h" enum { @@ -179,48 +180,23 @@ ev_link_new (const char *title, NULL)); } -/* Link Mapping stuff */ -static void -ev_link_mapping_free_foreach (EvLinkMapping *mapping) -{ - g_object_unref (G_OBJECT (mapping->link)); - g_free (mapping); -} - -void -ev_link_mapping_free (GList *link_mapping) -{ - if (link_mapping == NULL) - return; - - g_list_foreach (link_mapping, (GFunc) (ev_link_mapping_free_foreach), NULL); - g_list_free (link_mapping); -} - -EvLink * -ev_link_mapping_find (GList *link_mapping, - gdouble x, - gdouble y) +gint +ev_link_get_page (EvLink *link) { - GList *list; - EvLink *link = NULL; - int i; - - i = 0; + EvLinkAction *action; + EvLinkDest *dest; - for (list = link_mapping; list; list = list->next) { - EvLinkMapping *mapping = list->data; + action = ev_link_get_action (link); + if (!action) + return -1; - i++; - if ((x >= mapping->x1) && - (y >= mapping->y1) && - (x <= mapping->x2) && - (y <= mapping->y2)) { - link = mapping->link; - break; - } - } + if (ev_link_action_get_action_type (action) != + EV_LINK_ACTION_TYPE_GOTO_DEST) + return -1; - return link; + dest = ev_link_action_get_dest (action); + if (dest) + return ev_link_dest_get_page (dest); + + return -1; } -