diff options
author | Jonathan 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) |
commit | fba0ac29870eb3907c86a48733ba30d158f1b119 (patch) | |
tree | 850f23042091f4fd6bcfa1fb30154886434dbe62 /shell | |
parent | 80a9ffebfe5125584341d4fb005ee1a29219c970 (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.c | 22 |
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); |