diff options
author | Jonathan Blandford <jrb@redhat.com> | 2005-05-21 02:10:42 (GMT) |
---|---|---|
committer | Jonathan Blandford <jrb@src.gnome.org> | 2005-05-21 02:10:42 (GMT) |
commit | 391b8337a98a416103bcf27a6a54a2d2f0e15f87 (patch) | |
tree | db05da6a0cb0bd9fdefe8e8a818f4772f0db615a /shell | |
parent | 2c8f2e225edad376a726a8efe86923c20c6c2c01 (diff) |
Patch from Nickolay V. Shmyrev to reset the adjustment when the mode
Fri May 20 22:05:25 2005 Jonathan Blandford <jrb@redhat.com>
* *shell/ev-view.c: Patch from Nickolay V. Shmyrev to reset the
adjustment when the mode changes, #304923
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ev-view.c | 52 |
1 files changed, 31 insertions, 21 deletions
diff --git a/shell/ev-view.c b/shell/ev-view.c index d9dddaf..b8723cc 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -114,8 +114,8 @@ struct _EvView { char *status; char *find_status; - int scroll_x; - int scroll_y; + gint scroll_x; + gint scroll_y; DragInfo drag_info; gboolean pressed_button; @@ -562,30 +562,40 @@ view_scroll_to_page (EvView *view, gint new_page) get_bounding_box_size (view, &max_width, &max_height); - if (view->continuous && view->vadjustment) { + if (view->vadjustment) { + if (view->continuous) { - n_rows = view->dual_page ? new_page / 2 : new_page; + n_rows = view->dual_page ? new_page / 2 : new_page; - gtk_adjustment_clamp_page(view->vadjustment, - (max_height + view->spacing) * n_rows, - (max_height + view->spacing) * n_rows + - view->vadjustment->page_size); - } else { - gtk_adjustment_set_value (view->vadjustment, - view->vadjustment->lower); + gtk_adjustment_clamp_page(view->vadjustment, + (max_height + view->spacing) * n_rows, + (max_height + view->spacing) * n_rows + + view->vadjustment->page_size); + } else { + 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); + if (view->hadjustment) { + if (view->dual_page) { + 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); + } } 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); + gtk_adjustment_set_value (view->hadjustment, + CLAMP (view->hadjustment->value, + view->hadjustment->lower, + view->hadjustment->upper - + view->hadjustment->page_size)); } } |