]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-application.c
Fix several history bugs
[evince.git] / shell / ev-application.c
index 4f006cc5f1732bf86bfc575e0659bd016af9eca6..05f86ce85bc8df5308d022d55ece7f33b6979e3a 100644 (file)
@@ -29,8 +29,9 @@
 #include <gtk/gtkstock.h>
 #include <gtk/gtkwidget.h>
 #include <gtk/gtkmain.h>
+#include <libgnomevfs/gnome-vfs-utils.h>
 
-#include <ev-window.h>
+#include "ev-window.h"
 
 struct _EvApplicationPrivate {
        GList *windows;
@@ -168,6 +169,30 @@ ev_application_open (EvApplication *application, GError *err)
        gtk_widget_destroy (GTK_WIDGET (chooser));
 }
 
+void
+ev_application_open_link (EvApplication *application,
+                         EvWindow      *window,
+                         EvLink        *link,
+                         GError        *error)
+{
+       EvLinkType type;
+       const char *uri;
+
+       type = ev_link_get_link_type (link);
+       
+       switch (type) {
+               case EV_LINK_TYPE_TITLE:
+                       break;
+               case EV_LINK_TYPE_PAGE:
+                       ev_window_open_link (window, link);
+                       break;
+               case EV_LINK_TYPE_EXTERNAL_URI:
+                       uri = ev_link_get_uri (link);
+                       gnome_vfs_url_show (uri);
+                       break;
+       }
+}
+
 static void
 ev_application_class_init (EvApplicationClass *ev_application_class)
 {