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-21 02:10:42 (GMT)
committer Jonathan Blandford <jrb@src.gnome.org>2005-05-21 02:10:42 (GMT)
commit391b8337a98a416103bcf27a6a54a2d2f0e15f87 (patch)
treedb05da6a0cb0bd9fdefe8e8a818f4772f0db615a /shell
parent2c8f2e225edad376a726a8efe86923c20c6c2c01 (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.c52
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));
}
}