+ int first_page, last_page = -1;
+
+ gtk_tree_model_get (model, &iter,
+ EV_DOCUMENT_LINKS_COLUMN_LINK, &link,
+ -1);
+
+ if (!link)
+ return;
+
+ first_page = ev_link_get_page (link);
+ if (first_page == -1) {
+ g_object_unref (link);
+ return;
+ }
+
+ first_page++;
+ g_object_unref (link);
+
+ if (gtk_tree_model_iter_next (model, &iter)) {
+ gtk_tree_model_get (model, &iter,
+ EV_DOCUMENT_LINKS_COLUMN_LINK, &link,
+ -1);
+
+ if (link) {
+ last_page = ev_link_get_page (link);
+ g_object_unref (link);
+ }
+ } else {
+ last_page = ev_page_cache_get_n_pages (sidebar->priv->page_cache);
+ }
+
+ if (last_page == -1)
+ last_page = ev_page_cache_get_n_pages (sidebar->priv->page_cache);
+
+ window = gtk_widget_get_toplevel (GTK_WIDGET (sidebar));
+ if (EV_IS_WINDOW (window)) {
+#ifdef WITH_PRINT
+ ev_window_print_range (EV_WINDOW (window),
+ first_page, last_page);
+#endif
+ }
+ }
+}
+
+static GtkMenu *
+build_popup_menu (EvSidebarLinks *sidebar)
+{
+ GtkWidget *menu;
+ GtkWidget *item;
+
+ menu = gtk_menu_new ();
+ item = gtk_image_menu_item_new_from_stock (GTK_STOCK_PRINT, NULL);
+ gtk_label_set_label (GTK_LABEL (GTK_BIN (item)->child), _("Print..."));
+ gtk_widget_show (item);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+ g_signal_connect (item, "activate",
+ G_CALLBACK (print_section_cb), sidebar);
+
+ return GTK_MENU (menu);
+}