]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-view.c
Format string is corrected, fixes bug #397129.
[evince.git] / shell / ev-view.c
index 1e156d5019006250242ec225b64753b3dc51752d..98be15fd92d90f85b4a66e6bc7be82099bf10b7c 100644 (file)
@@ -39,7 +39,6 @@
 #include "ev-document-find.h"
 #include "ev-document-transition.h"
 #include "ev-document-misc.h"
-#include "ev-debug.h"
 #include "ev-job-queue.h"
 #include "ev-page-cache.h"
 #include "ev-pixbuf-cache.h"
@@ -123,9 +122,6 @@ static void       view_update_range_and_current_page         (EvView
 static void       set_scroll_adjustment                      (EvView             *view,
                                                              GtkOrientation      orientation,
                                                              GtkAdjustment      *adjustment);
-static void       ev_view_set_scroll_adjustments             (EvView             *view,
-                                                             GtkAdjustment      *hadjustment,
-                                                             GtkAdjustment      *vadjustment);
 static void       add_scroll_binding_keypad                  (GtkBindingSet      *binding_set,
                                                              guint               keyval,
                                                              GdkModifierType modifiers,
@@ -1708,6 +1704,8 @@ ev_view_size_allocate (GtkWidget      *widget,
 {
        EvView *view = EV_VIEW (widget);
 
+       GTK_WIDGET_CLASS (ev_view_parent_class)->size_allocate (widget, allocation);
+       
        if (view->sizing_mode == EV_SIZING_FIT_WIDTH ||
            view->sizing_mode == EV_SIZING_BEST_FIT) {
 
@@ -1724,8 +1722,6 @@ ev_view_size_allocate (GtkWidget      *widget,
 
        view->pending_scroll = SCROLL_TO_KEEP_POSITION;
        view->pending_resize = FALSE;
-
-       GTK_WIDGET_CLASS (ev_view_parent_class)->size_allocate (widget, allocation);
 }
 
 static void
@@ -2947,8 +2943,6 @@ ev_view_finalize (GObject *object)
 {
        EvView *view = EV_VIEW (object);
 
-       LOG ("Finalize");
-
        g_free (view->status);
        g_free (view->find_status);
 
@@ -3255,20 +3249,20 @@ ev_view_class_init (EvViewClass *class)
                                         PROP_ZOOM,
                                         g_param_spec_double ("zoom",
                                                              "Zoom factor",
-                                                              "Zoom factor",
-                                                              MIN_SCALE,
-                                                              MAX_SCALE,
-                                                              1.0,
-                                                              G_PARAM_READWRITE));
+                                                             "Zoom factor",
+                                                             0,
+                                                             G_MAXDOUBLE,
+                                                             1.0,
+                                                             G_PARAM_READWRITE));
        g_object_class_install_property (object_class,
                                         PROP_ROTATION,
                                         g_param_spec_double ("rotation",
                                                              "Rotation",
-                                                              "Rotation",
-                                                              0,
-                                                              360,
-                                                              0,
-                                                              G_PARAM_READWRITE));
+                                                             "Rotation",
+                                                             0,
+                                                             360,
+                                                             0,
+                                                             G_PARAM_READWRITE));
        g_object_class_install_property (object_class,
                                         PROP_HAS_SELECTION,
                                         g_param_spec_boolean ("has-selection",
@@ -3496,7 +3490,7 @@ ev_view_set_zoom (EvView   *view,
        else
                scale = factor;
 
-       scale = CLAMP (scale, MIN_SCALE, MAX_SCALE);
+       scale = CLAMP (scale, view->min_scale, view->max_scale);
 
        if (ABS (view->scale - scale) < EPSILON)
                return;
@@ -3515,6 +3509,18 @@ ev_view_get_zoom (EvView *view)
        return view->scale;
 }
 
+void
+ev_view_set_screen_dpi (EvView  *view,
+                       gdouble  dpi)
+{
+       g_return_if_fail (EV_IS_VIEW (view));
+       g_return_if_fail (dpi > 0);
+
+       view->dpi = dpi;
+       view->min_scale = MIN_SCALE * dpi / 72.0;
+       view->max_scale = MAX_SCALE * dpi / 72.0;
+}
+
 gboolean
 ev_view_get_continuous (EvView *view)
 {
@@ -3707,13 +3713,13 @@ ev_view_get_sizing_mode (EvView *view)
 gboolean
 ev_view_can_zoom_in (EvView *view)
 {
-       return view->scale * ZOOM_IN_FACTOR <= MAX_SCALE;
+       return view->scale * ZOOM_IN_FACTOR <= view->max_scale;
 }
 
 gboolean
 ev_view_can_zoom_out (EvView *view)
 {
-       return view->scale * ZOOM_OUT_FACTOR >= MIN_SCALE;
+       return view->scale * ZOOM_OUT_FACTOR >= view->min_scale;
 }
 
 void