Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorNickolay V. Shmyrev <nshmyrev@src.gnome.org>2005-06-04 22:53:48 (GMT)
committer Nickolay V. Shmyrev <nshmyrev@src.gnome.org>2005-06-04 22:53:48 (GMT)
commit8d43cc37d782fdaa65c8f68b94502ef62382fc6c (patch)
tree6421e2ffe2f91bdabb01a152ae284db8e8ccf2b0 /shell
parent07d12ea402c007f4d9ef30dff8f653a3bd3a1583 (diff)
A bit different fix for rounding problem but it has no
problems on startup. Make properties window transient to parent.
Diffstat (limited to 'shell')
-rw-r--r--shell/ev-view.c13
-rw-r--r--shell/ev-window.c1
2 files changed, 8 insertions, 6 deletions
diff --git a/shell/ev-view.c b/shell/ev-view.c
index 20c0eef..4ea0fce 100644
--- a/shell/ev-view.c
+++ b/shell/ev-view.c
@@ -422,16 +422,14 @@ view_set_adjustment_values (EvView *view,
return;
factor = 1.0;
- /* We add 0.5 to the values before to average out our rounding errors.
- */
switch (view->pending_scroll) {
case SCROLL_TO_KEEP_POSITION:
- factor = (adjustment->value + 0.5) / adjustment->upper;
+ factor = (adjustment->value) / adjustment->upper;
break;
case SCROLL_TO_CURRENT_PAGE:
break;
case SCROLL_TO_CENTER:
- factor = (adjustment->value + adjustment->page_size * 0.5 + 0.5) / adjustment->upper;
+ factor = (adjustment->value + adjustment->page_size * 0.5) / adjustment->upper;
break;
}
@@ -441,16 +439,19 @@ view_set_adjustment_values (EvView *view,
adjustment->lower = 0;
adjustment->upper = MAX (allocation, requisition);
+ /*
+ * We add 0.5 to the values before to average out our rounding errors.
+ */
switch (view->pending_scroll) {
case SCROLL_TO_KEEP_POSITION:
- new_value = CLAMP (adjustment->upper * factor, 0, adjustment->upper - adjustment->page_size);
+ new_value = CLAMP (adjustment->upper * factor + 0.5, 0, adjustment->upper - adjustment->page_size);
gtk_adjustment_set_value (adjustment, (int)new_value);
break;
case SCROLL_TO_CURRENT_PAGE:
scroll_to_current_page (view, orientation);
break;
case SCROLL_TO_CENTER:
- new_value = CLAMP (adjustment->upper * factor - adjustment->page_size * 0.5,
+ new_value = CLAMP (adjustment->upper * factor - adjustment->page_size * 0.5 + 0.5,
0, adjustment->upper - adjustment->page_size);
gtk_adjustment_set_value (adjustment, (int)new_value);
break;
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 2404001..aeceba8 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -1202,6 +1202,7 @@ ev_window_cmd_file_properties (GtkAction *action, EvWindow *ev_window)
info = ev_document_get_info (document);
dialog = ev_properties_new (info, fonts);
+ gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW(window));
gtk_dialog_run (dialog);
gtk_widget_destroy (GTK_WIDGET (dialog));
ev_document_info_free (info);