/* Go menu */
if (document) {
- set_action_sensitive (ev_window, "GoPreviousPage", ev_view_can_previous_page (view));
- set_action_sensitive (ev_window, "GoNextPage", ev_view_can_next_page (view));
+ set_action_sensitive (ev_window, "GoPreviousPage", page > 0);
+ set_action_sensitive (ev_window, "GoNextPage", page < n_pages - 1);
set_action_sensitive (ev_window, "GoFirstPage", page > 0);
set_action_sensitive (ev_window, "GoLastPage", page < n_pages - 1);
} else {
{
char *uri = window->priv->uri;
GValue page = { 0, };
+ gint new_page;
- /* Page */
if (uri && ev_metadata_manager_get (uri, "page", &page, TRUE)) {
+ new_page = CLAMP (g_value_get_int (&page), 0, ev_page_cache_get_n_pages (window->priv->page_cache) - 1);
ev_page_cache_set_current_page (window->priv->page_cache,
- g_value_get_int (&page));
+ new_page);
}
}
/* Presentation */
if (ev_metadata_manager_get (uri, "presentation", &presentation, FALSE)) {
- if (g_value_get_boolean (&presentation)) {
+ if (g_value_get_boolean (&presentation) && uri) {
ev_window_run_presentation (window);
}
}
/* Fullscreen */
if (ev_metadata_manager_get (uri, "fullscreen", &fullscreen, FALSE)) {
- if (g_value_get_boolean (&fullscreen)) {
+ if (g_value_get_boolean (&fullscreen) && uri) {
ev_window_run_fullscreen (window);
}
}
ev_window_open_uri (ev_window, uri);
/* In case the number of pages in the document has changed. */
- page = CLAMP (page, 0, ev_page_cache_get_n_pages (ev_window->priv->page_cache));
+ page = CLAMP (page, 0, ev_page_cache_get_n_pages (ev_window->priv->page_cache) - 1);
ev_page_cache_set_current_page (ev_window->priv->page_cache, page);
gboolean show_external = FALSE;
gboolean show_internal = FALSE;
GtkAction *action;
+
+ if (ev_view_get_presentation (EV_VIEW (ev_window->priv->view)))
+ return FALSE;
if (ev_window->priv->link)
g_object_unref (ev_window->priv->link);
gtk_menu_popup (GTK_MENU (popup), NULL, NULL,
NULL, NULL,
3, gtk_get_current_event_time ());
- return TRUE;
+ return FALSE;
}
static void