Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorJonathan Blandford <jrb@redhat.com>2005-05-20 05:29:43 (GMT)
committer Jonathan Blandford <jrb@src.gnome.org>2005-05-20 05:29:43 (GMT)
commitfba0ac29870eb3907c86a48733ba30d158f1b119 (patch)
tree850f23042091f4fd6bcfa1fb30154886434dbe62 /shell
parent80a9ffebfe5125584341d4fb005ee1a29219c970 (diff)
Patch from Nickolay Shmyrev to to scroll to second page on page_changed if
Fri May 20 01:27:01 2005 Jonathan Blandford <jrb@redhat.com> * shell/ev-view.c: Patch from Nickolay Shmyrev to to scroll to second page on page_changed if possible, #304669
Diffstat (limited to 'shell')
-rw-r--r--shell/ev-view.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/shell/ev-view.c b/shell/ev-view.c
index 3da8d13..04dfd73 100644
--- a/shell/ev-view.c
+++ b/shell/ev-view.c
@@ -537,7 +537,7 @@ view_scroll_to_page (EvView *view, gint new_page)
EvPageCache *page_cache = view->page_cache;
int old_width, old_height;
int new_width, new_height;
- int max_height, n_rows;
+ int max_height, max_width, n_rows;
ev_page_cache_get_size (page_cache,
view->current_page,
@@ -556,11 +556,11 @@ view_scroll_to_page (EvView *view, gint new_page)
else
gtk_widget_queue_draw (GTK_WIDGET (view));
- if (view->continuous) {
+ get_bounding_box_size (view, &max_width, &max_height);
+
+ if (view->continuous && view->vadjustment) {
n_rows = view->dual_page ? new_page / 2 : new_page;
-
- get_bounding_box_size (view, NULL, &max_height);
gtk_adjustment_clamp_page(view->vadjustment,
(max_height + view->spacing) * n_rows,
@@ -570,6 +570,20 @@ view_scroll_to_page (EvView *view, gint new_page)
gtk_adjustment_set_value (view->vadjustment,
view->vadjustment->lower);
}
+
+ if (view->dual_page && view->hadjustment) {
+ if (new_page % 2 == 0) {
+ gtk_adjustment_set_value (view->hadjustment,
+ view->hadjustment->lower);
+ } else {
+ gtk_adjustment_clamp_page (view->hadjustment,
+ view->hadjustment->lower +
+ max_width + view->spacing,
+ view->hadjustment->lower +
+ max_width + view->spacing +
+ view->hadjustment->page_size);
+ }
+ }
view->current_page = new_page;
view_update_range_and_current_page (view);