#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"
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,
{
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) {
view->pending_scroll = SCROLL_TO_KEEP_POSITION;
view->pending_resize = FALSE;
-
- GTK_WIDGET_CLASS (ev_view_parent_class)->size_allocate (widget, allocation);
}
static void
{
EvView *view = EV_VIEW (object);
- LOG ("Finalize");
-
g_free (view->status);
g_free (view->find_status);
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",
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;
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)
{
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