X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-window.c;h=7e6a1bc925d7efcf78979b2a1e55d18d7c0b54d9;hb=eb3d8c8e3df570e32e2591eeb650de55dba2f613;hp=fe2d0a873dda0f3f03b1e6b9e256489e91f98daa;hpb=d2291de1b6c2226d9ac294ace75ad4450d6e5cff;p=evince.git diff --git a/shell/ev-window.c b/shell/ev-window.c index fe2d0a87..7e6a1bc9 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -309,8 +309,8 @@ update_action_sensitivity (EvWindow *ev_window) /* 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 { @@ -625,11 +625,12 @@ setup_document_from_metadata (EvWindow *window) { 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); } } @@ -750,14 +751,14 @@ setup_view_from_metadata (EvWindow *window) /* 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); } } @@ -2089,7 +2090,7 @@ ev_window_cmd_view_reload (GtkAction *action, EvWindow *ev_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); @@ -2486,6 +2487,9 @@ view_menu_popup_cb (EvView *view, 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); @@ -2529,7 +2533,7 @@ view_menu_popup_cb (EvView *view, gtk_menu_popup (GTK_MENU (popup), NULL, NULL, NULL, NULL, 3, gtk_get_current_event_time ()); - return TRUE; + return FALSE; } static void