]> www.fi.muni.cz Git - evince.git/commitdiff
Two page scrolling with Space and PageUp in dual mode. Second fix for the
authorNickolay V. Shmyrev <nshmyrev@src.gnome.org>
Fri, 6 Jan 2006 10:02:13 +0000 (10:02 +0000)
committerNickolay V. Shmyrev <nshmyrev@src.gnome.org>
Fri, 6 Jan 2006 10:02:13 +0000 (10:02 +0000)
* shell/ev-view.c: (ev_view_scroll), (ev_view_previous_page),
(ev_view_can_previous_page), (ev_view_can_next_page):
* shell/ev-view.h:
* shell/ev-window.c: (update_action_sensitivity):

Two page scrolling with Space and PageUp in dual mode. Second fix
for the bug #316608.

ChangeLog
shell/ev-view.c
shell/ev-view.h
shell/ev-window.c

index d3bd74310d8764c9195be2c9a6ea0b05de46dc29..d72ffc724bddd0614b827ceb2e712f0f53186e40 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2006-01-06  Nickolay V. Shmyrev  <nshmyrev@yandex.ru>
+
+       * shell/ev-view.c: (ev_view_scroll), (ev_view_previous_page),
+       (ev_view_can_previous_page), (ev_view_can_next_page):
+       * shell/ev-view.h:
+       * shell/ev-window.c: (update_action_sensitivity):
+       
+       Two page scrolling with Space and PageUp in dual mode. Second fix 
+       for the bug #316608.
+
 2006-01-05  Nickolay V. Shmyrev  <nshmyrev@yandex.ru>
 
        * shell/ev-view.c: (scroll_to_current_page):
index ebbd784872de17c1ea08ad36e83463622526289d..d35d4fc461dcf057ca4395ee9b98f3331b474f66 100644 (file)
@@ -578,7 +578,7 @@ ev_view_scroll (EvView        *view,
                                /* At the top of a page, assign the upper bound limit of previous page */
                        } else if (value == (adjustment->lower)) {
                                value = adjustment->upper - adjustment->page_size;
-                               ev_page_cache_set_current_page (view->page_cache, view->current_page - 1);
+                               ev_view_previous_page (view);
                                /* Jump to the top */
                        } else {
                                value = MAX (value - increment, adjustment->lower);
@@ -591,7 +591,7 @@ ev_view_scroll (EvView        *view,
                        /* At the bottom of a page, assign the lower bound limit of next page */
                        } else if (value == (adjustment->upper - adjustment->page_size)) {
                                value = 0;
-                               ev_page_cache_set_current_page (view->page_cache, view->current_page + 1);
+                               ev_view_next_page (view);
                        /* Jump to the bottom */
                        } else {
                                value = MIN (value + increment, adjustment->upper - adjustment->page_size);
@@ -3961,6 +3961,31 @@ ev_view_previous_page (EvView *view)
        }
 }
 
+gboolean
+ev_view_can_previous_page (EvView *view)
+{
+       int page;
+
+       g_return_val_if_fail (EV_IS_VIEW (view), FALSE);
+
+       page = ev_page_cache_get_current_page (view->page_cache);
+       page = ev_view_get_dual_page (view) ? page - 2 : page - 1;
+       
+       return (page >=0);
+}
+
+gboolean ev_view_can_next_page (EvView *view)
+{
+       int page;
+
+       g_return_val_if_fail (EV_IS_VIEW (view), FALSE);
+
+       page = ev_page_cache_get_current_page (view->page_cache);
+       page = ev_view_get_dual_page (view) ? page + 2 : page + 1;
+
+       return (page < ev_page_cache_get_n_pages (view->page_cache));
+}
+
 /*** Enum description for usage in signal ***/
 
 GType
index 0378f285543aa6b7399c736696571361c11ab402..85692e860e96f8e99bb8417dd477f4c867516087 100644 (file)
@@ -127,6 +127,8 @@ void               ev_view_goto_link          (EvView         *view,
                                           EvLink         *link);
 gboolean       ev_view_next_page         (EvView         *view);
 gboolean       ev_view_previous_page     (EvView         *view);
+gboolean       ev_view_can_next_page     (EvView         *view);
+gboolean       ev_view_can_previous_page  (EvView         *view);
 
 G_END_DECLS
 
index 25b8a20d4842f180b4c27d975ea41d9b1dc53a08..1d6d4ef2e9ad0017953e22ec926637750150bdad 100644 (file)
@@ -311,8 +311,8 @@ update_action_sensitivity (EvWindow *ev_window)
 
         /* Go menu */
        if (document) {
-               set_action_sensitive (ev_window, "GoPreviousPage", page > 0);
-               set_action_sensitive (ev_window, "GoNextPage", page < n_pages - 1);
+               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, "GoFirstPage", page > 0);
                set_action_sensitive (ev_window, "GoLastPage", page < n_pages - 1);
        } else {