]> www.fi.muni.cz Git - evince.git/commitdiff
Clamp page recieved from metadata in valid values. Fix for the bug
authorNickolay V. Shmyrev <nshmyrev@src.gnome.org>
Fri, 6 Jan 2006 18:36:53 +0000 (18:36 +0000)
committerNickolay V. Shmyrev <nshmyrev@src.gnome.org>
Fri, 6 Jan 2006 18:36:53 +0000 (18:36 +0000)
* shell/ev-window.c: (setup_document_from_metadata),
(ev_window_cmd_view_reload):

Clamp page recieved from metadata in valid values. Fix
for the bug #325986.

ChangeLog
shell/ev-window.c

index 96b49e4576ed580e6551ceb31f7ab3613030a7b7..891078512957c0c0a563fbd86a7732310f0290f5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-01-06  Nickolay V. Shmyrev  <nshmyrev@yandex.ru>
+
+       * shell/ev-window.c: (setup_document_from_metadata),
+       (ev_window_cmd_view_reload):
+
+       Clamp page recieved from metadata in valid values. Fix
+       for the bug #325986.
+
 2006-01-06  Nickolay V. Shmyrev  <nshmyrev@yandex.ru>
 
        * MAINTAINERS: 
index fe2d0a873dda0f3f03b1e6b9e256489e91f98daa..15d671f5e938d164a1f0200a28729875591a29ff 100644 (file)
@@ -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);
        }
 }
 
@@ -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);