- /* Check whether it's a valid page number */
- page_number = atoi (text) - 1;
- if (page_number >= 0 &&
- page_number < ev_page_cache_get_n_pages (page_cache)) {
- page_label = ev_page_cache_get_page_label (page_cache, page_number);
- gtk_entry_set_text (GTK_ENTRY (entry), page_label);
- gtk_editable_set_position (GTK_EDITABLE (entry), -1);
-
- g_signal_emit (action, signals[ACTIVATE_LABEL], 0, page_label, &changed);
- g_free (page_label);
-
- return;
- }
+ link_dest = ev_link_dest_new_page_label (text);
+ link_action = ev_link_action_new_dest (link_dest);
+ link_text = g_strdup_printf ("Page: %s", text);
+ link = ev_link_new (link_text, link_action);
+
+ g_signal_emit (action, signals[ACTIVATE_LINK], 0, link);
+
+ g_object_unref (link);
+ g_free (link_text);