From edc89bd9ed05f9d684443cb7da20c972790c3714 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Aliste?= <jaliste@src.gnome.org>
Date: Thu, 4 Oct 2012 00:11:06 -0300
Subject: [PATCH] [libview] Make EvView struct "public"

Before this patch, it is not really possible to inherit from EvView.
With this patch, the EvView struct is public, and all the former members
of EvView are now moved to a EvViewPrivate struct.
---
 libview/ev-view-accessible.c |   32 +-
 libview/ev-view-private.h    |    3 +-
 libview/ev-view.c            | 1706 +++++++++++++++++++++---------------------
 libview/ev-view.h            |   10 +-
 4 files changed, 882 insertions(+), 869 deletions(-)

diff --git a/libview/ev-view-accessible.c b/libview/ev-view-accessible.c
index 73b833a..2b22ca5 100644
--- a/libview/ev-view-accessible.c
+++ b/libview/ev-view-accessible.c
@@ -100,22 +100,22 @@ ev_view_accessible_get_text_buffer (EvViewAccessible *accessible, EvView *view)
 	const gchar *retval = NULL;
 	EvViewAccessiblePriv* priv = EV_VIEW_ACCESSIBLE_GET_PRIVATE (accessible);
 
-	page_cache = view->page_cache;
+	page_cache = view->priv->page_cache;
 	if (!page_cache) {
 		return NULL;
 	}
 
-	if (view->current_page == priv->current_page && priv->buffer) {
+	if (view->priv->current_page == priv->current_page && priv->buffer) {
 		return priv->buffer;
 	}
 
-	priv->current_page = view->current_page;
+	priv->current_page = view->priv->current_page;
 
 	if (!priv->buffer) {
 		priv->buffer = gtk_text_buffer_new (NULL);
 	}
 
-	retval = ev_page_cache_get_text (page_cache, view->current_page);
+	retval = ev_page_cache_get_text (page_cache, view->priv->current_page);
 	if (retval)
 		gtk_text_buffer_set_text (priv->buffer, retval, -1);
 
@@ -405,15 +405,15 @@ ev_view_accessible_get_character_extents (AtkText      *text,
 		/* State is defunct */
 		return;
 
-	page_cache = EV_VIEW (widget)->page_cache;
+	page_cache = EV_VIEW (widget)->priv->page_cache;
 	if (!page_cache)
 		return;
 
-	ev_view_get_page_extents (EV_VIEW (widget), EV_VIEW (widget)->current_page,
+	ev_view_get_page_extents (EV_VIEW (widget), EV_VIEW (widget)->priv->current_page,
 	                          &page_area, &border);
 
-	scale = EV_VIEW (widget)->scale;
-	ev_page_cache_get_text_layout (page_cache, EV_VIEW (widget)->current_page, &areas, &n_areas);
+	scale = EV_VIEW (widget)->priv->scale;
+	ev_page_cache_get_text_layout (page_cache, EV_VIEW (widget)->priv->current_page, &areas, &n_areas);
 	if (!areas)
 		return;
 
@@ -438,8 +438,8 @@ ev_view_accessible_get_character_extents (AtkText      *text,
 		*y += y_window;
 	}
 
-	*x -= EV_VIEW (widget)->scroll_x;
-	*y -= EV_VIEW (widget)->scroll_y;
+	*x -= EV_VIEW (widget)->priv->scroll_x;
+	*y -= EV_VIEW (widget)->priv->scroll_y;
 
 	*x += page_area.x;
 	*y += page_area.y;
@@ -468,15 +468,15 @@ ev_view_accessible_get_offset_at_point (AtkText      *text,
 		/* State is defunct */
 		return -1;
 
-	page_cache = EV_VIEW (widget)->page_cache;
+	page_cache = EV_VIEW (widget)->priv->page_cache;
 	if (!page_cache)
 		return -1;
 
-	ev_view_get_page_extents (EV_VIEW (widget), EV_VIEW (widget)->current_page,
+	ev_view_get_page_extents (EV_VIEW (widget), EV_VIEW (widget)->priv->current_page,
 	                          &page_area, &border);
 
-	scale = EV_VIEW (widget)->scale;
-	ev_page_cache_get_text_layout (page_cache, EV_VIEW (widget)->current_page, &areas, &n_areas);
+	scale = EV_VIEW (widget)->priv->scale;
+	ev_page_cache_get_text_layout (page_cache, EV_VIEW (widget)->priv->current_page, &areas, &n_areas);
 	if (!areas)
 		return -1;
 
@@ -486,8 +486,8 @@ ev_view_accessible_get_offset_at_point (AtkText      *text,
 	rx -= page_area.x;
 	ry -= page_area.y;
 
-	rx += EV_VIEW (widget)->scroll_x;
-	ry += EV_VIEW (widget)->scroll_y;
+	rx += EV_VIEW (widget)->priv->scroll_x;
+	ry += EV_VIEW (widget)->priv->scroll_y;
 
 	toplevel = gtk_widget_get_toplevel (widget);
 	gtk_widget_translate_coordinates (widget, toplevel, 0, 0, &x_widget, &y_widget);
diff --git a/libview/ev-view-private.h b/libview/ev-view-private.h
index e7ac522..21ab67b 100644
--- a/libview/ev-view-private.h
+++ b/libview/ev-view-private.h
@@ -108,8 +108,7 @@ typedef struct _EvHeightToPageCache {
 	gdouble *dual_height_to_page;
 } EvHeightToPageCache;
 
-struct _EvView {
-	GtkLayout layout;
+struct _EvViewPrivate {
 
 	/* Container */
 	GList *children;
diff --git a/libview/ev-view.c b/libview/ev-view.c
index f2fb1b1..6489947 100644
--- a/libview/ev-view.c
+++ b/libview/ev-view.c
@@ -309,9 +309,9 @@ ev_view_build_height_to_page_cache (EvView		*view,
 	double saved_height;
 	gdouble u_width, u_height;
 	gint n_pages;
-	EvDocument *document = view->document;
+	EvDocument *document = view->priv->document;
 
-	swap = (view->rotation == 90 || view->rotation == 270);
+	swap = (view->priv->rotation == 90 || view->priv->rotation == 270);
 
 	uniform = ev_document_is_page_size_uniform (document);
 	n_pages = ev_document_get_n_pages (document);
@@ -319,8 +319,8 @@ ev_view_build_height_to_page_cache (EvView		*view,
 	g_free (cache->height_to_page);
 	g_free (cache->dual_height_to_page);
 
-	cache->rotation = view->rotation;
-	cache->dual_even_left = view->dual_even_left;
+	cache->rotation = view->priv->rotation;
+	cache->dual_even_left = view->priv->dual_even_left;
 	cache->height_to_page = g_new0 (gdouble, n_pages + 1);
 	cache->dual_height_to_page = g_new0 (gdouble, n_pages + 2);
 
@@ -411,14 +411,14 @@ ev_view_get_height_to_page_cache (EvView *view)
 {
 	EvHeightToPageCache *cache;
 
-	if (!view->document)
+	if (!view->priv->document)
 		return NULL;
 
-	cache = g_object_get_data (G_OBJECT (view->document), EV_HEIGHT_TO_PAGE_CACHE_KEY);
+	cache = g_object_get_data (G_OBJECT (view->priv->document), EV_HEIGHT_TO_PAGE_CACHE_KEY);
 	if (!cache) {
 		cache = g_new0 (EvHeightToPageCache, 1);
 		ev_view_build_height_to_page_cache (view, cache);
-		g_object_set_data_full (G_OBJECT (view->document),
+		g_object_set_data_full (G_OBJECT (view->priv->document),
 					EV_HEIGHT_TO_PAGE_CACHE_KEY,
 					cache,
 					(GDestroyNotify)ev_height_to_page_cache_free);
@@ -436,22 +436,22 @@ ev_view_get_height_to_page (EvView *view,
 	EvHeightToPageCache *cache = NULL;
 	gdouble h, dh;
 
-	if (!view->height_to_page_cache)
+	if (!view->priv->height_to_page_cache)
 		return;
 
-	cache = view->height_to_page_cache;
-	if (cache->rotation != view->rotation ||
-	    cache->dual_even_left != view->dual_even_left) {
+	cache = view->priv->height_to_page_cache;
+	if (cache->rotation != view->priv->rotation ||
+	    cache->dual_even_left != view->priv->dual_even_left) {
 		ev_view_build_height_to_page_cache (view, cache);
 	}
 	h = cache->height_to_page[page];
 	dh = cache->dual_height_to_page[page];
 
 	if (height)
-		*height = (gint)(h * view->scale + 0.5);
+		*height = (gint)(h * view->priv->scale + 0.5);
 
 	if (dual_height)
-		*dual_height = (gint)(dh * view->scale + 0.5);
+		*dual_height = (gint)(dh * view->priv->scale + 0.5);
 }
 
 static gint
@@ -471,12 +471,12 @@ ev_view_get_scrollbar_size (EvView        *view,
 	gtk_widget_get_allocation (widget, &allocation);
 
 	if (orientation == GTK_ORIENTATION_VERTICAL) {
-		if (allocation.height >= view->requisition.height)
+		if (allocation.height >= view->priv->requisition.height)
 			sb = gtk_scrolled_window_get_vscrollbar (GTK_SCROLLED_WINDOW (swindow));
 		else
 			return 0;
 	} else {
-		if (allocation.width >= view->requisition.width)
+		if (allocation.width >= view->priv->requisition.width)
 			sb = gtk_scrolled_window_get_hscrollbar (GTK_SCROLLED_WINDOW (swindow));
 		else
 			return 0;
@@ -498,28 +498,28 @@ scroll_to_point (EvView        *view,
 	gdouble upper, lower;
 
 	if (orientation == GTK_ORIENTATION_VERTICAL) {
-		page_size = gtk_adjustment_get_page_size (view->vadjustment);
-		upper = gtk_adjustment_get_upper (view->vadjustment);
-		lower = gtk_adjustment_get_lower (view->vadjustment);
+		page_size = gtk_adjustment_get_page_size (view->priv->vadjustment);
+		upper = gtk_adjustment_get_upper (view->priv->vadjustment);
+		lower = gtk_adjustment_get_lower (view->priv->vadjustment);
 
-		if (view->continuous) {
-    			gtk_adjustment_clamp_page (view->vadjustment,
-						   y - view->spacing / 2,
+		if (view->priv->continuous) {
+    			gtk_adjustment_clamp_page (view->priv->vadjustment,
+						   y - view->priv->spacing / 2,
 						   y + page_size);
 		} else {
-			gtk_adjustment_set_value (view->vadjustment,
+			gtk_adjustment_set_value (view->priv->vadjustment,
 						  CLAMP (y, lower, upper - page_size));
 		}
 	} else {
-		page_size = gtk_adjustment_get_page_size (view->hadjustment);
-		upper = gtk_adjustment_get_upper (view->hadjustment);
-		lower = gtk_adjustment_get_lower (view->hadjustment);
+		page_size = gtk_adjustment_get_page_size (view->priv->hadjustment);
+		upper = gtk_adjustment_get_upper (view->priv->hadjustment);
+		lower = gtk_adjustment_get_lower (view->priv->hadjustment);
 
-		if (view->dual_page) {
-			gtk_adjustment_clamp_page (view->hadjustment, x,
+		if (view->priv->dual_page) {
+			gtk_adjustment_clamp_page (view->priv->hadjustment, x,
 						   x + page_size);
 		} else {
-			gtk_adjustment_set_value (view->hadjustment,
+			gtk_adjustment_set_value (view->priv->hadjustment,
 						  CLAMP (x, lower, upper - page_size));
 		}
 	}
@@ -530,22 +530,22 @@ ev_view_scroll_to_page_position (EvView *view, GtkOrientation orientation)
 {
 	gdouble x, y;
 
-	if (!view->document)
+	if (!view->priv->document)
 		return;
 
-	if ((orientation == GTK_ORIENTATION_VERTICAL && view->pending_point.y == 0) ||
-	    (orientation == GTK_ORIENTATION_HORIZONTAL && view->pending_point.x == 0)) {
+	if ((orientation == GTK_ORIENTATION_VERTICAL && view->priv->pending_point.y == 0) ||
+	    (orientation == GTK_ORIENTATION_HORIZONTAL && view->priv->pending_point.x == 0)) {
 		GdkRectangle page_area;
 		GtkBorder    border;
 
-		ev_view_get_page_extents (view, view->current_page, &page_area, &border);
+		ev_view_get_page_extents (view, view->priv->current_page, &page_area, &border);
 		x = page_area.x;
 		y = page_area.y;
 	} else {
 		GdkPoint view_point;
 
-		doc_point_to_view_point (view, view->current_page,
-					 &view->pending_point, &view_point);
+		doc_point_to_view_point (view, view->priv->current_page,
+					 &view->priv->pending_point, &view_point);
 		x = view_point.x;
 		y = view_point.y;
 	}
@@ -571,13 +571,13 @@ ev_view_set_adjustment_values (EvView         *view,
 	gtk_widget_get_allocation (widget, &allocation);
 
 	if (orientation == GTK_ORIENTATION_HORIZONTAL)  {
-		req_size = view->requisition.width;
+		req_size = view->priv->requisition.width;
 		alloc_size = allocation.width;
-		adjustment = view->hadjustment;
+		adjustment = view->priv->hadjustment;
 	} else {
-		req_size = view->requisition.height;
+		req_size = view->priv->requisition.height;
 		alloc_size = allocation.height;
-		adjustment = view->vadjustment;
+		adjustment = view->priv->vadjustment;
 	}
 
 	if (!adjustment)
@@ -589,7 +589,7 @@ ev_view_set_adjustment_values (EvView         *view,
 	page_size = gtk_adjustment_get_page_size (adjustment);
 
 	if (upper != .0) {
-		switch (view->pending_scroll) {
+		switch (view->priv->pending_scroll) {
     	        case SCROLL_TO_KEEP_POSITION:
     	        case SCROLL_TO_FIND_LOCATION:
 			factor = value / upper;
@@ -614,7 +614,7 @@ ev_view_set_adjustment_values (EvView         *view,
 	/*
 	 * We add 0.5 to the values before to average out our rounding errors.
 	 */
-	switch (view->pending_scroll) {
+	switch (view->priv->pending_scroll) {
     	        case SCROLL_TO_KEEP_POSITION:
     	        case SCROLL_TO_FIND_LOCATION:
 			new_value = CLAMP (upper * factor + 0.5, 0, upper - page_size);
@@ -636,14 +636,14 @@ ev_view_set_adjustment_values (EvView         *view,
 static void
 view_update_range_and_current_page (EvView *view)
 {
-	gint start = view->start_page;
-	gint end = view->end_page;
+	gint start = view->priv->start_page;
+	gint end = view->priv->end_page;
 
-	if (ev_document_get_n_pages (view->document) <= 0 ||
-	    !ev_document_check_dimensions (view->document))
+	if (ev_document_get_n_pages (view->priv->document) <= 0 ||
+	    !ev_document_check_dimensions (view->priv->document))
 		return;
 
-	if (view->continuous) {
+	if (view->priv->continuous) {
 		GdkRectangle current_area, unused, page_area;
 		GtkBorder border;
 		gboolean found = FALSE;
@@ -651,15 +651,15 @@ view_update_range_and_current_page (EvView *view)
 		gint best_current_page = -1;
 		int i, j = 0;
 
-		if (!(view->vadjustment && view->hadjustment))
+		if (!(view->priv->vadjustment && view->priv->hadjustment))
 			return;
 
-		current_area.x = gtk_adjustment_get_value (view->hadjustment);
-		current_area.width = gtk_adjustment_get_page_size (view->hadjustment);
-		current_area.y = gtk_adjustment_get_value (view->vadjustment);
-		current_area.height = gtk_adjustment_get_page_size (view->vadjustment);
+		current_area.x = gtk_adjustment_get_value (view->priv->hadjustment);
+		current_area.width = gtk_adjustment_get_page_size (view->priv->hadjustment);
+		current_area.y = gtk_adjustment_get_value (view->priv->vadjustment);
+		current_area.height = gtk_adjustment_get_page_size (view->priv->vadjustment);
 
-		for (i = 0; i < ev_document_get_n_pages (view->document); i++) {
+		for (i = 0; i < ev_document_get_n_pages (view->priv->document); i++) {
 
 			ev_view_get_page_extents (view, i, &page_area, &border);
 
@@ -668,7 +668,7 @@ view_update_range_and_current_page (EvView *view)
 
 				if (!found) {
 					area_max = area;
-					view->start_page = i;
+					view->priv->start_page = i;
 					found = TRUE;
 					best_current_page = i;
 				}
@@ -677,10 +677,10 @@ view_update_range_and_current_page (EvView *view)
 					area_max = area;
 				}
 
-				view->end_page = i;
+				view->priv->end_page = i;
 				j = 0;
-			} else if (found && view->current_page <= view->end_page) {
-				if (view->dual_page && j < 1) {
+			} else if (found && view->priv->current_page <= view->priv->end_page) {
+				if (view->priv->dual_page && j < 1) {
 					/* In dual mode  we stop searching
 					 * after two consecutive non-visible pages.
 					 */
@@ -691,58 +691,58 @@ view_update_range_and_current_page (EvView *view)
 			}
 		}
 
-		if (view->pending_scroll == SCROLL_TO_KEEP_POSITION) {
-			best_current_page = MAX (best_current_page, view->start_page);
+		if (view->priv->pending_scroll == SCROLL_TO_KEEP_POSITION) {
+			best_current_page = MAX (best_current_page, view->priv->start_page);
 
-			if (view->current_page != best_current_page) {
-				view->current_page = best_current_page;
+			if (view->priv->current_page != best_current_page) {
+				view->priv->current_page = best_current_page;
 				ev_view_set_loading (view, FALSE);
-				ev_document_model_set_page (view->model, best_current_page);
+				ev_document_model_set_page (view->priv->model, best_current_page);
 			}
 		}
-	} else if (view->dual_page) {
-		if (view->current_page % 2 == view->dual_even_left) {
-			view->start_page = view->current_page;
-			if (view->current_page + 1 < ev_document_get_n_pages (view->document))
-				view->end_page = view->start_page + 1;
+	} else if (view->priv->dual_page) {
+		if (view->priv->current_page % 2 == view->priv->dual_even_left) {
+			view->priv->start_page = view->priv->current_page;
+			if (view->priv->current_page + 1 < ev_document_get_n_pages (view->priv->document))
+				view->priv->end_page = view->priv->start_page + 1;
 			else
-				view->end_page = view->start_page;
+				view->priv->end_page = view->priv->start_page;
 		} else {
-			if (view->current_page < 1)
-				view->start_page = view->current_page;
+			if (view->priv->current_page < 1)
+				view->priv->start_page = view->priv->current_page;
 			else
-				view->start_page = view->current_page - 1;
-			view->end_page = view->current_page;
+				view->priv->start_page = view->priv->current_page - 1;
+			view->priv->end_page = view->priv->current_page;
 		}
 	} else {
-		view->start_page = view->current_page;
-		view->end_page = view->current_page;
+		view->priv->start_page = view->priv->current_page;
+		view->priv->end_page = view->priv->current_page;
 	}
 
-	if (view->start_page == -1 || view->end_page == -1)
+	if (view->priv->start_page == -1 || view->priv->end_page == -1)
 		return;
 
-	if (start != view->start_page || end != view->end_page) {
+	if (start != view->priv->start_page || end != view->priv->end_page) {
 		gint i;
 
-		for (i = start; i < view->start_page && start != -1; i++) {
+		for (i = start; i < view->priv->start_page && start != -1; i++) {
 			hide_annotation_windows (view, i);
 		}
 
-		for (i = end; i > view->end_page && end != -1; i--) {
+		for (i = end; i > view->priv->end_page && end != -1; i--) {
 			hide_annotation_windows (view, i);
 		}
 	}
 
-	ev_page_cache_set_page_range (view->page_cache,
-				      view->start_page,
-				      view->end_page);
-	ev_pixbuf_cache_set_page_range (view->pixbuf_cache,
-					view->start_page,
-					view->end_page,
-					view->selection_info.selections);
+	ev_page_cache_set_page_range (view->priv->page_cache,
+				      view->priv->start_page,
+				      view->priv->end_page);
+	ev_pixbuf_cache_set_page_range (view->priv->pixbuf_cache,
+					view->priv->start_page,
+					view->priv->end_page,
+					view->priv->selection_info.selections);
 
-	if (ev_pixbuf_cache_get_surface (view->pixbuf_cache, view->current_page))
+	if (ev_pixbuf_cache_get_surface (view->priv->pixbuf_cache, view->priv->current_page))
 	    gtk_widget_queue_draw (GTK_WIDGET (view));
 }
 
@@ -755,10 +755,10 @@ ev_view_set_scroll_adjustment (EvView         *view,
 	const gchar    *prop_name;
 
 	if (orientation == GTK_ORIENTATION_HORIZONTAL) {
-		to_set = &view->hadjustment;
+		to_set = &view->priv->hadjustment;
 		prop_name = "hadjustment";
 	} else {
-		to_set = &view->vadjustment;
+		to_set = &view->priv->vadjustment;
 		prop_name = "vadjustment";
 	}
 
@@ -807,7 +807,7 @@ compute_scroll_increment (EvView        *view,
 			  GtkScrollType  scroll)
 {
 	GtkWidget *widget = GTK_WIDGET (view);
-	GtkAdjustment *adjustment = view->vadjustment;
+	GtkAdjustment *adjustment = view->priv->vadjustment;
 	cairo_region_t *text_region, *region;
 	GtkAllocation allocation;
 	gint page;
@@ -820,16 +820,16 @@ compute_scroll_increment (EvView        *view,
 	if (scroll != GTK_SCROLL_PAGE_BACKWARD && scroll != GTK_SCROLL_PAGE_FORWARD)
 		return gtk_adjustment_get_page_size (adjustment);
 
-	page = scroll == GTK_SCROLL_PAGE_BACKWARD ? view->start_page : view->end_page;
+	page = scroll == GTK_SCROLL_PAGE_BACKWARD ? view->priv->start_page : view->priv->end_page;
 
-	text_region = ev_page_cache_get_text_mapping (view->page_cache, page);
+	text_region = ev_page_cache_get_text_mapping (view->priv->page_cache, page);
 	if (!text_region || cairo_region_is_empty (text_region))
 		return gtk_adjustment_get_page_size (adjustment);
 
 	gtk_widget_get_allocation (widget, &allocation);
 	ev_view_get_page_extents (view, page, &page_area, &border);
-	rect.x = page_area.x + view->scroll_x;
-	rect.y = view->scroll_y + (scroll == GTK_SCROLL_PAGE_BACKWARD ? 5 : allocation.height - 5);
+	rect.x = page_area.x + view->priv->scroll_x;
+	rect.y = view->priv->scroll_y + (scroll == GTK_SCROLL_PAGE_BACKWARD ? 5 : allocation.height - 5);
 	rect.width = page_area.width;
 	rect.height = 1;
 	view_rect_to_doc_rect (view, &rect, &page_area, &doc_rect);
@@ -848,15 +848,15 @@ compute_scroll_increment (EvView        *view,
 		cairo_region_t *sel_region;
 
 		cairo_region_get_rectangle (region, 0, &rect);
-		ev_page = ev_document_get_page (view->document, page);
-		rc = ev_render_context_new (ev_page, view->rotation, view->scale);
+		ev_page = ev_document_get_page (view->priv->document, page);
+		rc = ev_render_context_new (ev_page, view->priv->rotation, view->priv->scale);
 		g_object_unref (ev_page);
 		/* Get the selection region to know the height of the line */
 		doc_rect.x1 = doc_rect.x2 = rect.x + 0.5;
 		doc_rect.y1 = doc_rect.y2 = rect.y + 0.5;
 
 		ev_document_doc_mutex_lock ();
-		sel_region = ev_selection_get_selection_region (EV_SELECTION (view->document),
+		sel_region = ev_selection_get_selection_region (EV_SELECTION (view->priv->document),
 								rc, EV_SELECTION_STYLE_LINE,
 								&doc_rect);
 		ev_document_doc_mutex_unlock ();
@@ -888,9 +888,9 @@ ev_view_scroll (EvView        *view,
 	gboolean first_page = FALSE;
 	gboolean last_page = FALSE;
 
-	view->jump_to_find_result = FALSE;
+	view->priv->jump_to_find_result = FALSE;
 
-	if (view->sizing_mode == EV_SIZING_BEST_FIT) {
+	if (view->priv->sizing_mode == EV_SIZING_BEST_FIT) {
 		switch (scroll) {
 			case GTK_SCROLL_PAGE_BACKWARD:
 			case GTK_SCROLL_STEP_BACKWARD:
@@ -907,7 +907,7 @@ ev_view_scroll (EvView        *view,
 	}
 
 	/* Assign values for increment and vertical adjustment */
-	adjustment = horizontal ? view->hadjustment : view->vadjustment;
+	adjustment = horizontal ? view->priv->hadjustment : view->priv->vadjustment;
 	value = gtk_adjustment_get_value (adjustment);
 	upper = gtk_adjustment_get_upper (adjustment);
 	lower = gtk_adjustment_get_lower (adjustment);
@@ -915,9 +915,9 @@ ev_view_scroll (EvView        *view,
 	step_increment = gtk_adjustment_get_step_increment (adjustment);
 
 	/* Assign boolean for first and last page */
-	if (view->current_page == 0)
+	if (view->priv->current_page == 0)
 		first_page = TRUE;
-	if (view->current_page == ev_document_get_n_pages (view->document) - 1)
+	if (view->priv->current_page == ev_document_get_n_pages (view->priv->document) - 1)
 		last_page = TRUE;
 
 	switch (scroll) {
@@ -981,32 +981,32 @@ ensure_rectangle_is_visible (EvView *view, GdkRectangle *rect)
 	gdouble adj_value;
 	int value;
 
-	view->pending_scroll = SCROLL_TO_FIND_LOCATION;
+	view->priv->pending_scroll = SCROLL_TO_FIND_LOCATION;
 
 	gtk_widget_get_allocation (widget, &allocation);
 
-	adjustment = view->vadjustment;
+	adjustment = view->priv->vadjustment;
 	adj_value = gtk_adjustment_get_value (adjustment);
 
 	if (rect->y < adj_value) {
 		value = MAX (gtk_adjustment_get_lower (adjustment), rect->y - MARGIN);
-		gtk_adjustment_set_value (view->vadjustment, value);
+		gtk_adjustment_set_value (view->priv->vadjustment, value);
 	} else if (rect->y + rect->height > adj_value + allocation.height) {
 		value = MIN (gtk_adjustment_get_upper (adjustment), rect->y + rect->height -
 			     allocation.height + MARGIN);
-		gtk_adjustment_set_value (view->vadjustment, value);
+		gtk_adjustment_set_value (view->priv->vadjustment, value);
 	}
 
-	adjustment = view->hadjustment;
+	adjustment = view->priv->hadjustment;
 	adj_value = gtk_adjustment_get_value (adjustment);
 
 	if (rect->x < adj_value) {
 		value = MAX (gtk_adjustment_get_lower (adjustment), rect->x - MARGIN);
-		gtk_adjustment_set_value (view->hadjustment, value);
+		gtk_adjustment_set_value (view->priv->hadjustment, value);
 	} else if (rect->x + rect->height > adj_value + allocation.width) {
 		value = MIN (gtk_adjustment_get_upper (adjustment), rect->x + rect->width -
 			     allocation.width + MARGIN);
-		gtk_adjustment_set_value (view->hadjustment, value);
+		gtk_adjustment_set_value (view->priv->hadjustment, value);
 	}
 
 	gtk_widget_queue_resize (GTK_WIDGET (view));
@@ -1048,10 +1048,10 @@ ev_view_get_page_size (EvView *view,
 		       gint   *page_width,
 		       gint   *page_height)
 {
-	_get_page_size_for_scale_and_rotation (view->document,
+	_get_page_size_for_scale_and_rotation (view->priv->document,
 					       page,
-					       view->scale,
-					       view->rotation,
+					       view->priv->scale,
+					       view->priv->rotation,
 					       page_width,
 					       page_height);
 }
@@ -1064,15 +1064,15 @@ ev_view_get_max_page_size (EvView *view,
 	double w, h;
 	gint   width, height;
 
-	ev_document_get_max_page_size (view->document, &w, &h);
+	ev_document_get_max_page_size (view->priv->document, &w, &h);
 
-	width = (gint)(w * view->scale + 0.5);
-	height = (gint)(h * view->scale + 0.5);
+	width = (gint)(w * view->priv->scale + 0.5);
+	height = (gint)(h * view->priv->scale + 0.5);
 
 	if (max_width)
-		*max_width = (view->rotation == 0 || view->rotation == 180) ? width : height;
+		*max_width = (view->priv->rotation == 0 || view->priv->rotation == 180) ? width : height;
 	if (max_height)
-		*max_height = (view->rotation == 0 || view->rotation == 180) ? height : width;
+		*max_height = (view->priv->rotation == 0 || view->priv->rotation == 180) ? height : width;
 }
 
 static void
@@ -1086,13 +1086,13 @@ get_page_y_offset (EvView *view, int page, int *y_offset)
 	ev_view_get_max_page_size (view, &max_width, NULL);
 	compute_border (view, max_width, max_width, &border);
 
-	if (view->dual_page) {
+	if (view->priv->dual_page) {
 		ev_view_get_height_to_page (view, page, NULL, &offset);
-		offset += ((page + view->dual_even_left) / 2 + 1) * view->spacing +
-			((page + view->dual_even_left) / 2 ) * (border.top + border.bottom);
+		offset += ((page + view->priv->dual_even_left) / 2 + 1) * view->priv->spacing +
+			((page + view->priv->dual_even_left) / 2 ) * (border.top + border.bottom);
 	} else {
 		ev_view_get_height_to_page (view, page, &offset, NULL);
-		offset += (page + 1) * view->spacing + page * (border.top + border.bottom);
+		offset += (page + 1) * view->priv->spacing + page * (border.top + border.bottom);
 	}
 
 	*y_offset = offset;
@@ -1118,21 +1118,21 @@ ev_view_get_page_extents (EvView       *view,
 	page_area->width = width + border->left + border->right;
 	page_area->height = height + border->top + border->bottom;
 
-	if (view->continuous) {
+	if (view->priv->continuous) {
 		gint max_width;
 		gint x, y;
 
 		ev_view_get_max_page_size (view, &max_width, NULL);
 		max_width = max_width + border->left + border->right;
 		/* Get the location of the bounding box */
-		if (view->dual_page) {
-			x = view->spacing + ((page % 2 == view->dual_even_left) ? 0 : 1) * (max_width + view->spacing);
-			x = x + MAX (0, allocation.width - (max_width * 2 + view->spacing * 3)) / 2;
-			if (page % 2 == view->dual_even_left)
+		if (view->priv->dual_page) {
+			x = view->priv->spacing + ((page % 2 == view->priv->dual_even_left) ? 0 : 1) * (max_width + view->priv->spacing);
+			x = x + MAX (0, allocation.width - (max_width * 2 + view->priv->spacing * 3)) / 2;
+			if (page % 2 == view->priv->dual_even_left)
 				x = x + (max_width - width - border->left - border->right);
 		} else {
-			x = view->spacing;
-			x = x + MAX (0, allocation.width - (width + view->spacing * 2)) / 2;
+			x = view->priv->spacing;
+			x = x + MAX (0, allocation.width - (width + view->priv->spacing * 2)) / 2;
 		}
 
 		get_page_y_offset (view, page, &y);
@@ -1141,17 +1141,17 @@ ev_view_get_page_extents (EvView       *view,
 		page_area->y = y;
 	} else {
 		gint x, y;
-		if (view->dual_page) {
+		if (view->priv->dual_page) {
 			gint width_2, height_2;
 			gint max_width = width;
 			gint max_height = height;
 			GtkBorder overall_border;
 			gint other_page;
 
-			other_page = (page % 2 == view->dual_even_left) ? page + 1: page - 1;
+			other_page = (page % 2 == view->priv->dual_even_left) ? page + 1: page - 1;
 
 			/* First, we get the bounding box of the two pages */
-			if (other_page < ev_document_get_n_pages (view->document)
+			if (other_page < ev_document_get_n_pages (view->priv->document)
 			    && (0 <= other_page)) {
 				ev_view_get_page_size (view, other_page,
 						       &width_2, &height_2);
@@ -1163,28 +1163,28 @@ ev_view_get_page_extents (EvView       *view,
 			compute_border (view, max_width, max_height, &overall_border);
 
 			/* Find the offsets */
-			x = view->spacing;
-			y = view->spacing;
+			x = view->priv->spacing;
+			y = view->priv->spacing;
 
 			/* Adjust for being the left or right page */
-			if (page % 2 == view->dual_even_left)
+			if (page % 2 == view->priv->dual_even_left)
 				x = x + max_width - width;
 			else
-				x = x + (max_width + overall_border.left + overall_border.right) + view->spacing;
+				x = x + (max_width + overall_border.left + overall_border.right) + view->priv->spacing;
 
 			y = y + (max_height - height)/2;
 
 			/* Adjust for extra allocation */
 			x = x + MAX (0, allocation.width -
-				     ((max_width + overall_border.left + overall_border.right) * 2 + view->spacing * 3))/2;
-			y = y + MAX (0, allocation.height - (height + view->spacing * 2))/2;
+				     ((max_width + overall_border.left + overall_border.right) * 2 + view->priv->spacing * 3))/2;
+			y = y + MAX (0, allocation.height - (height + view->priv->spacing * 2))/2;
 		} else {
-			x = view->spacing;
-			y = view->spacing;
+			x = view->priv->spacing;
+			y = view->priv->spacing;
 
 			/* Adjust for extra allocation */
-			x = x + MAX (0, allocation.width - (width + border->left + border->right + view->spacing * 2))/2;
-			y = y + MAX (0, allocation.height - (height + border->top + border->bottom +  view->spacing * 2))/2;
+			x = x + MAX (0, allocation.width - (width + border->left + border->right + view->priv->spacing * 2))/2;
+			y = y + MAX (0, allocation.height - (height + border->top + border->bottom +  view->priv->spacing * 2))/2;
 		}
 
 		page_area->x = x;
@@ -1202,8 +1202,8 @@ get_doc_page_size (EvView  *view,
 {
 	double w, h;
 
-	ev_document_get_page_size (view->document, page, &w, &h);
-	if (view->rotation == 0 || view->rotation == 180) {
+	ev_document_get_page_size (view->priv->document, page, &w, &h);
+	if (view->priv->rotation == 0 || view->priv->rotation == 180) {
 		if (width) *width = w;
 		if (height) *height = h;
 	} else {
@@ -1219,8 +1219,8 @@ view_point_to_doc_point (EvView *view,
 			 double  *doc_point_x,
 			 double  *doc_point_y)
 {
-	*doc_point_x = (double) (view_point->x - page_area->x) / view->scale;
-	*doc_point_y = (double) (view_point->y - page_area->y) / view->scale;
+	*doc_point_x = (double) (view_point->x - page_area->x) / view->priv->scale;
+	*doc_point_y = (double) (view_point->y - page_area->y) / view->priv->scale;
 }
 
 static void
@@ -1229,10 +1229,10 @@ view_rect_to_doc_rect (EvView *view,
 		       GdkRectangle *page_area,
 		       EvRectangle  *doc_rect)
 {
-	doc_rect->x1 = (double) (view_rect->x - page_area->x) / view->scale;
-	doc_rect->y1 = (double) (view_rect->y - page_area->y) / view->scale;
-	doc_rect->x2 = doc_rect->x1 + (double) view_rect->width / view->scale;
-	doc_rect->y2 = doc_rect->y1 + (double) view_rect->height / view->scale;
+	doc_rect->x1 = (double) (view_rect->x - page_area->x) / view->priv->scale;
+	doc_rect->y1 = (double) (view_rect->y - page_area->y) / view->priv->scale;
+	doc_rect->x2 = doc_rect->x1 + (double) view_rect->width / view->priv->scale;
+	doc_rect->y2 = doc_rect->y1 + (double) view_rect->height / view->priv->scale;
 }
 
 static void
@@ -1248,16 +1248,16 @@ doc_point_to_view_point (EvView       *view,
 
 	get_doc_page_size (view, page, &width, &height);
 
-	if (view->rotation == 0) {
+	if (view->priv->rotation == 0) {
 		x = doc_point->x;
 		y = doc_point->y;
-	} else if (view->rotation == 90) {
+	} else if (view->priv->rotation == 90) {
 		x = width - doc_point->y;
 		y = doc_point->x;
-	} else if (view->rotation == 180) {
+	} else if (view->priv->rotation == 180) {
 		x = width - doc_point->x;
 		y = height - doc_point->y;
-	} else if (view->rotation == 270) {
+	} else if (view->priv->rotation == 270) {
 		x = doc_point->y;
 		y = height - doc_point->x;
 	} else {
@@ -1266,8 +1266,8 @@ doc_point_to_view_point (EvView       *view,
 
 	ev_view_get_page_extents (view, page, &page_area, &border);
 
-	view_x = CLAMP (x * view->scale, 0, page_area.width);
-	view_y = CLAMP (y * view->scale, 0, page_area.height);
+	view_x = CLAMP (x * view->priv->scale, 0, page_area.width);
+	view_y = CLAMP (y * view->priv->scale, 0, page_area.height);
 	view_point->x = view_x + page_area.x;
 	view_point->y = view_y + page_area.y;
 }
@@ -1285,22 +1285,22 @@ doc_rect_to_view_rect (EvView       *view,
 
 	get_doc_page_size (view, page, &width, &height);
 
-	if (view->rotation == 0) {
+	if (view->priv->rotation == 0) {
 		x = doc_rect->x1;
 		y = doc_rect->y1;
 		w = doc_rect->x2 - doc_rect->x1;
 		h = doc_rect->y2 - doc_rect->y1;
-	} else if (view->rotation == 90) {
+	} else if (view->priv->rotation == 90) {
 		x = width - doc_rect->y2;
 		y = doc_rect->x1;
 		w = doc_rect->y2 - doc_rect->y1;
 		h = doc_rect->x2 - doc_rect->x1;
-	} else if (view->rotation == 180) {
+	} else if (view->priv->rotation == 180) {
 		x = width - doc_rect->x2;
 		y = height - doc_rect->y2;
 		w = doc_rect->x2 - doc_rect->x1;
 		h = doc_rect->y2 - doc_rect->y1;
-	} else if (view->rotation == 270) {
+	} else if (view->priv->rotation == 270) {
 		x = doc_rect->y1;
 		y = height - doc_rect->x2;
 		w = doc_rect->y2 - doc_rect->y1;
@@ -1311,10 +1311,10 @@ doc_rect_to_view_rect (EvView       *view,
 
 	ev_view_get_page_extents (view, page, &page_area, &border);
 
-	view_rect->x = x * view->scale + page_area.x;
-	view_rect->y = y * view->scale + page_area.y;
-	view_rect->width = w * view->scale;
-	view_rect->height = h * view->scale;
+	view_rect->x = x * view->priv->scale + page_area.x;
+	view_rect->y = y * view->priv->scale + page_area.y;
+	view_rect->width = w * view->priv->scale;
+	view_rect->height = h * view->priv->scale;
 }
 
 static void
@@ -1327,14 +1327,14 @@ find_page_at_location (EvView  *view,
 {
 	int i;
 
-	if (view->document == NULL)
+	if (view->priv->document == NULL)
 		return;
 
 	g_assert (page);
 	g_assert (x_offset);
 	g_assert (y_offset);
 
-	for (i = view->start_page; i >= 0 && i <= view->end_page; i++) {
+	for (i = view->priv->start_page; i >= 0 && i <= view->priv->end_page; i++) {
 		GdkRectangle page_area;
 		GtkBorder border;
 
@@ -1369,10 +1369,10 @@ location_in_text (EvView  *view,
 	if (page == -1)
 		return FALSE;
 	
-	region = ev_page_cache_get_text_mapping (view->page_cache, page);
+	region = ev_page_cache_get_text_mapping (view->priv->page_cache, page);
 
 	if (region)
-		return cairo_region_contains_point (region, x_offset / view->scale, y_offset / view->scale);
+		return cairo_region_contains_point (region, x_offset / view->priv->scale, y_offset / view->priv->scale);
 	else
 		return FALSE;
 }
@@ -1387,7 +1387,7 @@ location_in_selected_text (EvView  *view,
 	EvViewSelection *selection;
 	GList *l = NULL;
 
-	for (l = view->selection_info.selections; l != NULL; l = l->next) {
+	for (l = view->priv->selection_info.selections; l != NULL; l = l->next) {
 		selection = (EvViewSelection *)l->data;
 		
 		find_page_at_location (view, x, y, &page, &x_offset, &y_offset);
@@ -1416,19 +1416,19 @@ get_doc_point_from_offset (EvView *view,
 
 	get_doc_page_size (view, page, &width, &height);
 
-	x_offset = x_offset / view->scale;
-	y_offset = y_offset / view->scale;
+	x_offset = x_offset / view->priv->scale;
+	y_offset = y_offset / view->priv->scale;
 
-        if (view->rotation == 0) {
+        if (view->priv->rotation == 0) {
                 x = x_offset;
                 y = y_offset;
-        } else if (view->rotation == 90) {
+        } else if (view->priv->rotation == 90) {
                 x = y_offset;
                 y = width - x_offset;
-        } else if (view->rotation == 180) {
+        } else if (view->priv->rotation == 180) {
                 x = width - x_offset;
                 y = height - y_offset;
-        } else if (view->rotation == 270) {
+        } else if (view->priv->rotation == 270) {
                 x = height - y_offset; 
                 y = x_offset;
         } else {
@@ -1451,8 +1451,8 @@ get_doc_point_from_location (EvView  *view,
 {
 	gint x_offset = 0, y_offset = 0;
 
-	x += view->scroll_x;
-	y += view->scroll_y;
+	x += view->priv->scroll_x;
+	y += view->priv->scroll_y;
 	find_page_at_location (view, x, y, page, &x_offset, &y_offset);
 	if (*page == -1)
 		return FALSE;
@@ -1471,8 +1471,8 @@ ev_view_get_area_from_mapping (EvView        *view,
 
 	mapping = ev_mapping_list_find (mapping_list, data);
 	doc_rect_to_view_rect (view, page, &mapping->area, area);
-	area->x -= view->scroll_x;
-	area->y -= view->scroll_y;
+	area->x -= view->priv->scroll_x;
+	area->y -= view->priv->scroll_y;
 }
 
 static void
@@ -1494,7 +1494,7 @@ ev_view_put (EvView      *view,
 	child->doc_rect = *doc_rect;
 
 	gtk_widget_set_parent (child_widget, GTK_WIDGET (view));
-	view->children = g_list_append (view->children, child);
+	view->priv->children = g_list_append (view->priv->children, child);
 }
 
 static void
@@ -1506,8 +1506,8 @@ ev_view_put_to_doc_rect (EvView      *view,
 	GdkRectangle area;
 
 	doc_rect_to_view_rect (view, page, doc_rect, &area);
-	area.x -= view->scroll_x;
-	area.y -= view->scroll_y;
+	area.x -= view->priv->scroll_x;
+	area.y -= view->priv->scroll_y;
 	ev_view_put (view, child_widget, area.x, area.y, page, doc_rect);
 }
 
@@ -1521,13 +1521,13 @@ ev_view_get_link_at_location (EvView  *view,
 	gint x_new = 0, y_new = 0;
 	EvMappingList *link_mapping;
 
-	if (!EV_IS_DOCUMENT_LINKS (view->document))
+	if (!EV_IS_DOCUMENT_LINKS (view->priv->document))
 		return NULL;
 
 	if (!get_doc_point_from_location (view, x, y, &page, &x_new, &y_new))
 		return NULL;
 
-	link_mapping = ev_page_cache_get_link_mapping (view->page_cache, page);
+	link_mapping = ev_page_cache_get_link_mapping (view->priv->page_cache, page);
 
 	if (link_mapping)
 		return ev_mapping_list_get_data (link_mapping, x_new, y_new);
@@ -1553,12 +1553,12 @@ goto_fitr_dest (EvView *view, EvLinkDest *dest)
 				       allocation.width,
 				       allocation.height);
 
-	ev_document_model_set_sizing_mode (view->model, EV_SIZING_FREE);
-	ev_document_model_set_scale (view->model, zoom);
+	ev_document_model_set_sizing_mode (view->priv->model, EV_SIZING_FREE);
+	ev_document_model_set_scale (view->priv->model, zoom);
 
 	doc_point.x = change_left ? left : 0;
 	doc_point.y = change_top ? top : 0;
-	view->pending_point = doc_point;
+	view->priv->pending_point = doc_point;
 
 	ev_view_change_page (view, ev_link_dest_get_page (dest));
 }
@@ -1576,7 +1576,7 @@ goto_fitv_dest (EvView *view, EvLinkDest *dest)
 	gtk_widget_get_allocation (GTK_WIDGET (view), &allocation);
 
 	page = ev_link_dest_get_page (dest);
-	ev_document_get_page_size (view->document, page, &doc_width, &doc_height);
+	ev_document_get_page_size (view->priv->document, page, &doc_width, &doc_height);
 
 	left = ev_link_dest_get_left (dest, &change_left);
 	doc_point.x = change_left ? left : 0;
@@ -1586,10 +1586,10 @@ goto_fitv_dest (EvView *view, EvLinkDest *dest)
 					 allocation.width,
 				         allocation.height);
 
-	ev_document_model_set_sizing_mode (view->model, EV_SIZING_FREE);
-	ev_document_model_set_scale (view->model, zoom);
+	ev_document_model_set_sizing_mode (view->priv->model, EV_SIZING_FREE);
+	ev_document_model_set_scale (view->priv->model, zoom);
 
-	view->pending_point = doc_point;
+	view->priv->pending_point = doc_point;
 
 	ev_view_change_page (view, page);
 }
@@ -1607,7 +1607,7 @@ goto_fith_dest (EvView *view, EvLinkDest *dest)
 	gtk_widget_get_allocation (GTK_WIDGET (view), &allocation);
 
 	page = ev_link_dest_get_page (dest);
-	ev_document_get_page_size (view->document, page, &doc_width, &doc_height);
+	ev_document_get_page_size (view->priv->document, page, &doc_width, &doc_height);
 
 	top = ev_link_dest_get_top (dest, &change_top);
 
@@ -1618,10 +1618,10 @@ goto_fith_dest (EvView *view, EvLinkDest *dest)
 					allocation.width,
 				        allocation.height);
 
-	ev_document_model_set_sizing_mode (view->model, EV_SIZING_FIT_WIDTH);
-	ev_document_model_set_scale (view->model, zoom);
+	ev_document_model_set_sizing_mode (view->priv->model, EV_SIZING_FIT_WIDTH);
+	ev_document_model_set_scale (view->priv->model, zoom);
 
-	view->pending_point = doc_point;
+	view->priv->pending_point = doc_point;
 
 	ev_view_change_page (view, page);
 }
@@ -1637,14 +1637,14 @@ goto_fit_dest (EvView *view, EvLinkDest *dest)
 	gtk_widget_get_allocation (GTK_WIDGET (view), &allocation);
 
 	page = ev_link_dest_get_page (dest);
-	ev_document_get_page_size (view->document, page, &doc_width, &doc_height);
+	ev_document_get_page_size (view->priv->document, page, &doc_width, &doc_height);
 
 	zoom = zoom_for_size_best_fit (doc_width, doc_height,
 				       allocation.width,
 				       allocation.height);
 
-	ev_document_model_set_sizing_mode (view->model, EV_SIZING_BEST_FIT);
-	ev_document_model_set_scale (view->model, zoom);
+	ev_document_model_set_sizing_mode (view->priv->model, EV_SIZING_BEST_FIT);
+	ev_document_model_set_scale (view->priv->model, zoom);
 
 	ev_view_change_page (view, page);
 }
@@ -1661,8 +1661,8 @@ goto_xyz_dest (EvView *view, EvLinkDest *dest)
 	page = ev_link_dest_get_page (dest);
 
 	if (change_zoom && zoom > 1) {
-		ev_document_model_set_sizing_mode (view->model, EV_SIZING_FREE);
-		ev_document_model_set_scale (view->model, zoom);
+		ev_document_model_set_sizing_mode (view->priv->model, EV_SIZING_FREE);
+		ev_document_model_set_scale (view->priv->model, zoom);
 	}
 
 	left = ev_link_dest_get_left (dest, &change_left);
@@ -1670,7 +1670,7 @@ goto_xyz_dest (EvView *view, EvLinkDest *dest)
 
 	doc_point.x = change_left ? left : 0;
 	doc_point.y = change_top ? top : 0;
-	view->pending_point = doc_point;
+	view->priv->pending_point = doc_point;
 
 	ev_view_change_page (view, page);
 }
@@ -1682,18 +1682,18 @@ goto_dest (EvView *view, EvLinkDest *dest)
 	int page, n_pages, current_page;
 
 	page = ev_link_dest_get_page (dest);
-	n_pages = ev_document_get_n_pages (view->document);
+	n_pages = ev_document_get_n_pages (view->priv->document);
 
 	if (page < 0 || page >= n_pages)
 		return;
 
-	current_page = view->current_page;
+	current_page = view->priv->current_page;
 	
 	type = ev_link_dest_get_dest_type (dest);
 
 	switch (type) {
 	        case EV_LINK_DEST_TYPE_PAGE:
-			ev_document_model_set_page (view->model, page);
+			ev_document_model_set_page (view->priv->model, page);
 			break;
 	        case EV_LINK_DEST_TYPE_FIT:
 			goto_fit_dest (view, dest);
@@ -1711,14 +1711,14 @@ goto_dest (EvView *view, EvLinkDest *dest)
 			goto_xyz_dest (view, dest);
 			break;
 	        case EV_LINK_DEST_TYPE_PAGE_LABEL:
-			ev_document_model_set_page_by_label (view->model, ev_link_dest_get_page_label (dest));
+			ev_document_model_set_page_by_label (view->priv->model, ev_link_dest_get_page_label (dest));
 			break;
 	        default:
 			g_assert_not_reached ();
 	}
 
-	if (current_page != view->current_page)
-		ev_document_model_set_page (view->model, view->current_page);
+	if (current_page != view->priv->current_page)
+		ev_document_model_set_page (view->priv->model, view->priv->current_page);
 }
 
 static void
@@ -1733,7 +1733,7 @@ ev_view_goto_dest (EvView *view, EvLinkDest *dest)
 		const gchar *named_dest;
 
 		named_dest = ev_link_dest_get_named_dest (dest);
-		dest2 = ev_document_links_find_link_dest (EV_DOCUMENT_LINKS (view->document),
+		dest2 = ev_document_links_find_link_dest (EV_DOCUMENT_LINKS (view->priv->document),
 							  named_dest);
 		if (dest2) {
 			goto_dest (view, dest2);
@@ -1773,7 +1773,7 @@ ev_view_handle_link (EvView *view, EvLink *link)
 			GList            *l;
 			EvDocumentLayers *document_layers;
 
-			document_layers = EV_DOCUMENT_LAYERS (view->document);
+			document_layers = EV_DOCUMENT_LAYERS (view->priv->document);
 
 			show = ev_link_action_get_show_list (action);
 			for (l = show; l; l = g_list_next (l)) {
@@ -1797,7 +1797,7 @@ ev_view_handle_link (EvView *view, EvLink *link)
 			}
 
 			g_signal_emit (view, signals[SIGNAL_LAYERS_CHANGED], 0);
-			ev_view_reload_page (view, view->current_page, NULL);
+			ev_view_reload_page (view, view->priv->current_page, NULL);
 		}
 			break;
 	        case EV_LINK_ACTION_TYPE_GOTO_REMOTE:
@@ -1850,7 +1850,7 @@ tip_from_link (EvView *view, EvLink *link)
 
 	switch (type) {
 	        case EV_LINK_ACTION_TYPE_GOTO_DEST:
-			page_label = ev_document_links_get_dest_page_label (EV_DOCUMENT_LINKS (view->document),
+			page_label = ev_document_links_get_dest_page_label (EV_DOCUMENT_LINKS (view->priv->document),
 									    ev_link_action_get_dest (action));
 			if (page_label) {
     				msg = g_strdup_printf (_("Go to page %s"), page_label);
@@ -1892,23 +1892,23 @@ ev_view_handle_cursor_over_xy (EvView *view, gint x, gint y)
 	EvFormField  *field;
 	EvAnnotation *annot = NULL;
 
-	if (view->cursor == EV_VIEW_CURSOR_HIDDEN)
+	if (view->priv->cursor == EV_VIEW_CURSOR_HIDDEN)
 		return;
 
-	if (view->adding_annot) {
-		if (view->cursor != EV_VIEW_CURSOR_ADD)
+	if (view->priv->adding_annot) {
+		if (view->priv->cursor != EV_VIEW_CURSOR_ADD)
 			ev_view_set_cursor (view, EV_VIEW_CURSOR_ADD);
 		return;
 	}
 
-	if (view->drag_info.in_drag) {
-		if (view->cursor != EV_VIEW_CURSOR_DRAG)
+	if (view->priv->drag_info.in_drag) {
+		if (view->priv->cursor != EV_VIEW_CURSOR_DRAG)
 			ev_view_set_cursor (view, EV_VIEW_CURSOR_DRAG);
 		return;
 	}
 
-	if (view->scroll_info.autoscrolling) {
-		if (view->cursor != EV_VIEW_CURSOR_AUTOSCROLL)
+	if (view->priv->scroll_info.autoscrolling) {
+		if (view->priv->cursor != EV_VIEW_CURSOR_AUTOSCROLL)
 			ev_view_set_cursor (view, EV_VIEW_CURSOR_AUTOSCROLL);
 		return;
 	}
@@ -1918,9 +1918,9 @@ ev_view_handle_cursor_over_xy (EvView *view, gint x, gint y)
 		ev_view_set_cursor (view, EV_VIEW_CURSOR_LINK);
 	} else if ((field = ev_view_get_form_field_at_location (view, x, y))) {
 		if (field->is_read_only) {
-			if (view->cursor == EV_VIEW_CURSOR_LINK ||
-			    view->cursor == EV_VIEW_CURSOR_IBEAM ||
-			    view->cursor == EV_VIEW_CURSOR_DRAG)
+			if (view->priv->cursor == EV_VIEW_CURSOR_LINK ||
+			    view->priv->cursor == EV_VIEW_CURSOR_IBEAM ||
+			    view->priv->cursor == EV_VIEW_CURSOR_DRAG)
 				ev_view_set_cursor (view, EV_VIEW_CURSOR_NORMAL);
 		} else if (EV_IS_FORM_FIELD_TEXT (field)) {
 			ev_view_set_cursor (view, EV_VIEW_CURSOR_IBEAM);
@@ -1929,14 +1929,14 @@ ev_view_handle_cursor_over_xy (EvView *view, gint x, gint y)
 		}
 	} else if ((annot = ev_view_get_annotation_at_location (view, x, y))) {
 		ev_view_set_cursor (view, EV_VIEW_CURSOR_LINK);
-	} else if (location_in_text (view, x + view->scroll_x, y + view->scroll_y)) {
+	} else if (location_in_text (view, x + view->priv->scroll_x, y + view->priv->scroll_y)) {
 		ev_view_set_cursor (view, EV_VIEW_CURSOR_IBEAM);
 	} else {
-		if (view->cursor == EV_VIEW_CURSOR_LINK ||
-		    view->cursor == EV_VIEW_CURSOR_IBEAM ||
-		    view->cursor == EV_VIEW_CURSOR_DRAG ||
-		    view->cursor == EV_VIEW_CURSOR_AUTOSCROLL ||
-		    view->cursor == EV_VIEW_CURSOR_ADD)
+		if (view->priv->cursor == EV_VIEW_CURSOR_LINK ||
+		    view->priv->cursor == EV_VIEW_CURSOR_IBEAM ||
+		    view->priv->cursor == EV_VIEW_CURSOR_DRAG ||
+		    view->priv->cursor == EV_VIEW_CURSOR_AUTOSCROLL ||
+		    view->priv->cursor == EV_VIEW_CURSOR_ADD)
 			ev_view_set_cursor (view, EV_VIEW_CURSOR_NORMAL);
 	}
 
@@ -1954,13 +1954,13 @@ ev_view_get_image_at_location (EvView  *view,
 	gint x_new = 0, y_new = 0;
 	EvMappingList *image_mapping;
 
-	if (!EV_IS_DOCUMENT_IMAGES (view->document))
+	if (!EV_IS_DOCUMENT_IMAGES (view->priv->document))
 		return NULL;
 
 	if (!get_doc_point_from_location (view, x, y, &page, &x_new, &y_new))
 		return NULL;
 
-	image_mapping = ev_page_cache_get_image_mapping (view->page_cache, page);
+	image_mapping = ev_page_cache_get_image_mapping (view->priv->page_cache, page);
 
 	if (image_mapping)
 		return ev_mapping_list_get_data (image_mapping, x_new, y_new);
@@ -1978,13 +1978,13 @@ ev_view_get_form_field_at_location (EvView  *view,
 	gint x_new = 0, y_new = 0;
 	EvMappingList *forms_mapping;
 	
-	if (!EV_IS_DOCUMENT_FORMS (view->document))
+	if (!EV_IS_DOCUMENT_FORMS (view->priv->document))
 		return NULL;
 
 	if (!get_doc_point_from_location (view, x, y, &page, &x_new, &y_new))
 		return NULL;
 
-	forms_mapping = ev_page_cache_get_form_field_mapping (view->page_cache, page);
+	forms_mapping = ev_page_cache_get_form_field_mapping (view->priv->page_cache, page);
 
 	if (forms_mapping)
 		return ev_mapping_list_get_data (forms_mapping, x_new, y_new);
@@ -1999,7 +1999,7 @@ ev_view_form_field_get_region (EvView      *view,
 	GdkRectangle   view_area;
 	EvMappingList *forms_mapping;
 
-	forms_mapping = ev_page_cache_get_form_field_mapping (view->page_cache,
+	forms_mapping = ev_page_cache_get_form_field_mapping (view->priv->page_cache,
 							      field->page->index);
 	ev_view_get_area_from_mapping (view, field->page->index,
 				       forms_mapping,
@@ -2039,7 +2039,7 @@ ev_view_form_field_button_create_widget (EvView      *view,
 			EvMappingList *forms_mapping;
 			GList         *l;
 
-			state = ev_document_forms_form_field_button_get_state (EV_DOCUMENT_FORMS (view->document),
+			state = ev_document_forms_form_field_button_get_state (EV_DOCUMENT_FORMS (view->priv->document),
 									       field);
 
 			/* FIXME: it actually depends on NoToggleToOff flags */
@@ -2052,7 +2052,7 @@ ev_view_form_field_button_create_widget (EvView      *view,
 			/* For radio buttons and checkbox buttons that are in a set
 			 * we need to update also the region for the current selected item
 			 */
-			forms_mapping = ev_page_cache_get_form_field_mapping (view->page_cache,
+			forms_mapping = ev_page_cache_get_form_field_mapping (view->priv->page_cache,
 									      field->page->index);
 			for (l = ev_mapping_list_get_list (forms_mapping); l; l = g_list_next (l)) {
 				EvFormField *button = ((EvMapping *)(l->data))->data;
@@ -2072,7 +2072,7 @@ ev_view_form_field_button_create_widget (EvView      *view,
 				cairo_region_destroy (button_region);
 			}
 			
-			ev_document_forms_form_field_button_set_state (EV_DOCUMENT_FORMS (view->document),
+			ev_document_forms_form_field_button_set_state (EV_DOCUMENT_FORMS (view->priv->document),
 								       field, !state);
 			field_button->state = !state;
 		}
@@ -2091,7 +2091,7 @@ ev_view_form_field_text_save (EvView    *view,
 {
 	EvFormField *field;
 
-	if (!view->document)
+	if (!view->priv->document)
 		return;
 	
 	field = g_object_get_data (G_OBJECT (widget), "form-field");
@@ -2102,7 +2102,7 @@ ev_view_form_field_text_save (EvView    *view,
 
 		field_region = ev_view_form_field_get_region (view, field);
 		
-		ev_document_forms_form_field_text_set_text (EV_DOCUMENT_FORMS (view->document),
+		ev_document_forms_form_field_text_set_text (EV_DOCUMENT_FORMS (view->priv->document),
 							    field, field_text->text);
 		field->changed = FALSE;
 		ev_view_reload_page (view, field->page->index, field_region);
@@ -2153,7 +2153,7 @@ ev_view_form_field_text_create_widget (EvView      *view,
 	GtkWidget       *text = NULL;
 	gchar           *txt;
 
-	txt = ev_document_forms_form_field_text_get_text (EV_DOCUMENT_FORMS (view->document),
+	txt = ev_document_forms_form_field_text_get_text (EV_DOCUMENT_FORMS (view->priv->document),
 							  field);
 
 	switch (field_text->type) {
@@ -2214,7 +2214,7 @@ ev_view_form_field_choice_save (EvView    *view,
 {
 	EvFormField *field;
 
-	if (!view->document)
+	if (!view->priv->document)
 		return;
 	
 	field = g_object_get_data (G_OBJECT (widget), "form-field");
@@ -2227,12 +2227,12 @@ ev_view_form_field_choice_save (EvView    *view,
 		field_region = ev_view_form_field_get_region (view, field);
 
 		if (field_choice->is_editable) {
-			ev_document_forms_form_field_choice_set_text (EV_DOCUMENT_FORMS (view->document),
+			ev_document_forms_form_field_choice_set_text (EV_DOCUMENT_FORMS (view->priv->document),
 								      field, field_choice->text);
 		} else {
-			ev_document_forms_form_field_choice_unselect_all (EV_DOCUMENT_FORMS (view->document), field);
+			ev_document_forms_form_field_choice_unselect_all (EV_DOCUMENT_FORMS (view->priv->document), field);
 			for (l = field_choice->selected_items; l; l = g_list_next (l)) {
-				ev_document_forms_form_field_choice_select_item (EV_DOCUMENT_FORMS (view->document),
+				ev_document_forms_form_field_choice_select_item (EV_DOCUMENT_FORMS (view->priv->document),
 										 field,
 										 GPOINTER_TO_INT (l->data));
 			}
@@ -2312,17 +2312,17 @@ ev_view_form_field_choice_create_widget (EvView      *view,
 	gint               n_items, i;
 	gint               selected_item = 0;
 
-	n_items = ev_document_forms_form_field_choice_get_n_items (EV_DOCUMENT_FORMS (view->document),
+	n_items = ev_document_forms_form_field_choice_get_n_items (EV_DOCUMENT_FORMS (view->priv->document),
 								   field);
 	model = GTK_TREE_MODEL (gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT));
 	for (i = 0; i < n_items; i++) {
 		GtkTreeIter iter;
 		gchar      *item;
 
-		item = ev_document_forms_form_field_choice_get_item (EV_DOCUMENT_FORMS (view->document),
+		item = ev_document_forms_form_field_choice_get_item (EV_DOCUMENT_FORMS (view->priv->document),
 								     field, i);
 		if (ev_document_forms_form_field_choice_is_item_selected (
-			    EV_DOCUMENT_FORMS (view->document), field, i)) {
+			    EV_DOCUMENT_FORMS (view->priv->document), field, i)) {
 			selected_item = i;
 			/* FIXME: we need a get_selected_items function in poppler */
 			field_choice->selected_items = g_list_prepend (field_choice->selected_items,
@@ -2377,7 +2377,7 @@ ev_view_form_field_choice_create_widget (EvView      *view,
                 /* FIXME once gtk bug 633050 is fixed */
                 choice = g_object_new (GTK_TYPE_COMBO_BOX, "has-entry", TRUE, "model", model, NULL);
 
-		text = ev_document_forms_form_field_choice_get_text (EV_DOCUMENT_FORMS (view->document), field);
+		text = ev_document_forms_form_field_choice_get_text (EV_DOCUMENT_FORMS (view->priv->document), field);
 		if (text) {
 			gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (choice))), text);
 			g_free (text);
@@ -2452,7 +2452,7 @@ ev_view_handle_form_field (EvView      *view,
 				g_object_ref (field),
 				(GDestroyNotify)g_object_unref);
 
-	form_field_mapping = ev_page_cache_get_form_field_mapping (view->page_cache,
+	form_field_mapping = ev_page_cache_get_form_field_mapping (view->priv->page_cache,
 								   field->page->index);
 	mapping = ev_mapping_list_find (form_field_mapping, field);
 	ev_view_put_to_doc_rect (view, field_widget, field->page->index, &mapping->area);
@@ -2465,7 +2465,7 @@ static EvViewWindowChild *
 ev_view_get_window_child (EvView    *view,
 			  GtkWidget *window)
 {
-	GList *children = view->window_children;
+	GList *children = view->priv->window_children;
 
 	while (children) {
 		EvViewWindowChild *child;
@@ -2555,7 +2555,7 @@ ev_view_window_child_put (EvView    *view,
 	else
 		gtk_widget_hide (window);
 
-	view->window_children = g_list_append (view->window_children, child);
+	view->priv->window_children = g_list_append (view->priv->window_children, child);
 }
 
 static EvViewWindowChild *
@@ -2563,7 +2563,7 @@ ev_view_find_window_child_for_annot (EvView       *view,
 				     guint         page,
 				     EvAnnotation *annot)
 {
-	GList *children = view->window_children;
+	GList *children = view->priv->window_children;
 
 	while (children) {
 		EvViewWindowChild *child;
@@ -2588,28 +2588,28 @@ ev_view_window_children_free (EvView *view)
 {
 	GList *l;
 
-	if (!view->window_children)
+	if (!view->priv->window_children)
 		return;
 
-	for (l = view->window_children; l && l->data; l = g_list_next (l)) {
+	for (l = view->priv->window_children; l && l->data; l = g_list_next (l)) {
 		EvViewWindowChild *child;
 
 		child = (EvViewWindowChild *)l->data;
 		gtk_widget_destroy (GTK_WIDGET (child->window));
 		g_free (child);
 	}
-	g_list_free (view->window_children);
-	view->window_children = NULL;
-	view->window_child_focus = NULL;
+	g_list_free (view->priv->window_children);
+	view->priv->window_children = NULL;
+	view->priv->window_child_focus = NULL;
 }
 
 static void
 annotation_window_grab_focus (GtkWidget *widget,
 			      EvView    *view)
 {
-	if (view->window_child_focus)
-		ev_annotation_window_ungrab_focus (EV_ANNOTATION_WINDOW (view->window_child_focus->window));
-	view->window_child_focus = ev_view_get_window_child (view, widget);
+	if (view->priv->window_child_focus)
+		ev_annotation_window_ungrab_focus (EV_ANNOTATION_WINDOW (view->priv->window_child_focus->window));
+	view->priv->window_child_focus = ev_view_get_window_child (view, widget);
 }
 
 static void
@@ -2647,8 +2647,8 @@ annotation_window_moved (EvAnnotationWindow *window,
 	 * we have to set a new origin in doc coords
 	 */
 	gtk_window_get_size (GTK_WINDOW (window), &width, &height);
-	view_rect.x = (x - child->parent_x) + view->scroll_x;
-	view_rect.y = (y - child->parent_y) + view->scroll_y;
+	view_rect.x = (x - child->parent_x) + view->priv->scroll_x;
+	view_rect.y = (y - child->parent_y) + view->priv->scroll_y;
 	view_rect.width = width;
 	view_rect.height = height;
 
@@ -2663,11 +2663,11 @@ ev_view_annotation_save_contents (EvView       *view,
 				  GParamSpec   *pspec,
 				  EvAnnotation *annot)
 {
-	if (!view->document)
+	if (!view->priv->document)
 		return;
 
 	ev_document_doc_mutex_lock ();
-	ev_document_annotations_save_annotation (EV_DOCUMENT_ANNOTATIONS (view->document),
+	ev_document_annotations_save_annotation (EV_DOCUMENT_ANNOTATIONS (view->priv->document),
 						 annot, EV_ANNOTATIONS_SAVE_CONTENTS);
 	ev_document_doc_mutex_unlock ();
 }
@@ -2700,8 +2700,8 @@ ev_view_create_annotation_window (EvView       *view,
 	page = ev_annotation_get_page_index (annot);
 	ev_annotation_window_get_rectangle (EV_ANNOTATION_WINDOW (window), &doc_rect);
 	doc_rect_to_view_rect (view, page, &doc_rect, &view_rect);
-	view_rect.x -= view->scroll_x;
-	view_rect.y -= view->scroll_y;
+	view_rect.x -= view->priv->scroll_x;
+	view_rect.y -= view->priv->scroll_y;
 
 	ev_view_window_child_put (view, window, page,
 				  view_rect.x, view_rect.y,
@@ -2720,7 +2720,7 @@ show_annotation_windows (EvView *view,
 
 	parent = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (view)));
 
-	annots = ev_page_cache_get_annot_mapping (view->page_cache, page);
+	annots = ev_page_cache_get_annot_mapping (view->priv->page_cache, page);
 
 	for (l = ev_mapping_list_get_list (annots); l && l->data; l = g_list_next (l)) {
 		EvAnnotation      *annot;
@@ -2761,7 +2761,7 @@ hide_annotation_windows (EvView *view,
 	EvMappingList *annots;
 	GList         *l;
 
-	annots = ev_page_cache_get_annot_mapping (view->page_cache, page);
+	annots = ev_page_cache_get_annot_mapping (view->priv->page_cache, page);
 
 	for (l = ev_mapping_list_get_list (annots); l && l->data; l = g_list_next (l)) {
 		EvAnnotation *annot;
@@ -2787,13 +2787,13 @@ ev_view_get_annotation_at_location (EvView  *view,
 	gint x_new = 0, y_new = 0;
 	EvMappingList *annotations_mapping;
 
-	if (!EV_IS_DOCUMENT_ANNOTATIONS (view->document))
+	if (!EV_IS_DOCUMENT_ANNOTATIONS (view->priv->document))
 		return NULL;
 
 	if (!get_doc_point_from_location (view, x, y, &page, &x_new, &y_new))
 		return NULL;
 
-	annotations_mapping = ev_page_cache_get_annot_mapping (view->page_cache, page);
+	annotations_mapping = ev_page_cache_get_annot_mapping (view->priv->page_cache, page);
 
 	if (annotations_mapping)
 		return ev_mapping_list_get_data (annotations_mapping, x_new, y_new);
@@ -2870,14 +2870,14 @@ ev_view_create_annotation (EvView          *view,
 
 	point.x = x;
 	point.y = y;
-	ev_view_get_page_extents (view, view->current_page, &page_area, &border);
+	ev_view_get_page_extents (view, view->priv->current_page, &page_area, &border);
 	view_point_to_doc_point (view, &point, &page_area,
 				 &doc_rect.x1, &doc_rect.y1);
 	doc_rect.x2 = doc_rect.x1 + 24;
 	doc_rect.y2 = doc_rect.y1 + 24;
 
 	ev_document_doc_mutex_lock ();
-	page = ev_document_get_page (view->document, view->current_page);
+	page = ev_document_get_page (view->priv->document, view->priv->current_page);
 	switch (annot_type) {
 	case EV_ANNOTATION_TYPE_TEXT:
 		annot = ev_annotation_text_new (page);
@@ -2907,13 +2907,13 @@ ev_view_create_annotation (EvView          *view,
 			      "opacity", 1.0,
 			      NULL);
 	}
-	ev_document_annotations_add_annotation (EV_DOCUMENT_ANNOTATIONS (view->document),
+	ev_document_annotations_add_annotation (EV_DOCUMENT_ANNOTATIONS (view->priv->document),
 						annot, &doc_rect);
 	ev_document_doc_mutex_unlock ();
 
 	/* If the page didn't have annots, mark the cache as dirty */
-	if (!ev_page_cache_get_annot_mapping (view->page_cache, view->current_page))
-		ev_page_cache_mark_dirty (view->page_cache, view->current_page);
+	if (!ev_page_cache_get_annot_mapping (view->priv->page_cache, view->priv->current_page))
+		ev_page_cache_mark_dirty (view->priv->page_cache, view->priv->current_page);
 
 	if (EV_IS_ANNOTATION_MARKUP (annot)) {
 		GtkWindow *parent;
@@ -2926,11 +2926,11 @@ ev_view_create_annotation (EvView          *view,
 		ev_view_annotation_show_popup_window (view, window);
 	}
 
-	doc_rect_to_view_rect (view, view->current_page, &doc_rect, &view_rect);
-	view_rect.x -= view->scroll_x;
-	view_rect.y -= view->scroll_y;
+	doc_rect_to_view_rect (view, view->priv->current_page, &doc_rect, &view_rect);
+	view_rect.x -= view->priv->scroll_x;
+	view_rect.y -= view->priv->scroll_y;
 	region = cairo_region_create_rectangle (&view_rect);
-	ev_view_reload_page (view, view->current_page, region);
+	ev_view_reload_page (view, view->priv->current_page, region);
 	cairo_region_destroy (region);
 
 	g_signal_emit (view, signals[SIGNAL_ANNOT_ADDED], 0, annot);
@@ -2944,17 +2944,17 @@ ev_view_focus_annotation (EvView    *view,
 	EvAnnotation *annot;
 	guint         page;
 
-	if (!EV_IS_DOCUMENT_ANNOTATIONS (view->document))
+	if (!EV_IS_DOCUMENT_ANNOTATIONS (view->priv->document))
 		return;
 
-	if (view->focus_annotation == annot_mapping)
+	if (view->priv->focus_annotation == annot_mapping)
 		return;
 
-	view->focus_annotation = annot_mapping;
+	view->priv->focus_annotation = annot_mapping;
 	annot = (EvAnnotation *)annot_mapping->data;
 
 	page = ev_annotation_get_page_index (annot);
-	ev_document_model_set_page (view->model, page);
+	ev_document_model_set_page (view->priv->model, page);
 
 	doc_rect_to_view_rect (view, page,
 			       &annot_mapping->area, &view_rect);
@@ -2969,11 +2969,11 @@ ev_view_begin_add_annotation (EvView          *view,
 	if (annot_type == EV_ANNOTATION_TYPE_UNKNOWN)
 		return;
 
-	if (view->adding_annot)
+	if (view->priv->adding_annot)
 		return;
 
-	view->adding_annot = TRUE;
-	view->adding_annot_type = annot_type;
+	view->priv->adding_annot = TRUE;
+	view->priv->adding_annot_type = annot_type;
 	ev_view_set_cursor (view, EV_VIEW_CURSOR_ADD);
 }
 
@@ -2982,10 +2982,10 @@ ev_view_cancel_add_annotation (EvView *view)
 {
 	gint x, y;
 
-	if (!view->adding_annot)
+	if (!view->priv->adding_annot)
 		return;
 
-	view->adding_annot = FALSE;
+	view->priv->adding_annot = FALSE;
 	ev_document_misc_get_pointer_position (GTK_WIDGET (view), &x, &y);
 	ev_view_handle_cursor_over_xy (view, x, y);
 }
@@ -2999,13 +2999,13 @@ ev_view_synctex_backward_search (EvView *view,
 	gint x_new = 0, y_new = 0;
 	EvSourceLink *link;
 
-	if (!ev_document_has_synctex (view->document))
+	if (!ev_document_has_synctex (view->priv->document))
 		return FALSE;
 
 	if (!get_doc_point_from_location (view, x, y, &page, &x_new, &y_new))
 		return FALSE;
 
-	link = ev_document_synctex_backward_search (view->document, page, x_new, y_new);
+	link = ev_document_synctex_backward_search (view->priv->document, page, x_new, y_new);
 	if (link) {
 		g_signal_emit (view, signals[SIGNAL_SYNC_SOURCE], 0, link);
 		ev_source_link_free (link);
@@ -3024,10 +3024,10 @@ ev_view_size_request_continuous_dual_page (EvView         *view,
 {
 	gint n_pages;
 
-	n_pages = ev_document_get_n_pages (view->document) + 1;
+	n_pages = ev_document_get_n_pages (view->priv->document) + 1;
 	get_page_y_offset (view, n_pages, &requisition->height);
 
-	switch (view->sizing_mode) {
+	switch (view->priv->sizing_mode) {
 	        case EV_SIZING_FIT_WIDTH:
 	        case EV_SIZING_BEST_FIT:
 			requisition->width = 1;
@@ -3039,7 +3039,7 @@ ev_view_size_request_continuous_dual_page (EvView         *view,
 
 			ev_view_get_max_page_size (view, &max_width, NULL);
 			compute_border (view, max_width, max_width, &border);
-			requisition->width = (max_width + border.left + border.right) * 2 + (view->spacing * 3);
+			requisition->width = (max_width + border.left + border.right) * 2 + (view->priv->spacing * 3);
 		}
 			break;
 	        default:
@@ -3053,10 +3053,10 @@ ev_view_size_request_continuous (EvView         *view,
 {
 	gint n_pages;
 
-	n_pages = ev_document_get_n_pages (view->document);
+	n_pages = ev_document_get_n_pages (view->priv->document);
 	get_page_y_offset (view, n_pages, &requisition->height);
 
-	switch (view->sizing_mode) {
+	switch (view->priv->sizing_mode) {
 	        case EV_SIZING_FIT_WIDTH:
 	        case EV_SIZING_BEST_FIT:
 			requisition->width = 1;
@@ -3068,7 +3068,7 @@ ev_view_size_request_continuous (EvView         *view,
 
 			ev_view_get_max_page_size (view, &max_width, NULL);
 			compute_border (view, max_width, max_width, &border);
-			requisition->width = max_width + (view->spacing * 2) + border.left + border.right;
+			requisition->width = max_width + (view->priv->spacing * 2) + border.left + border.right;
 		}
 			break;
 	        default:
@@ -3083,7 +3083,7 @@ ev_view_size_request_dual_page (EvView         *view,
 	GtkBorder border;
 	gint width, height;
 
-	if (view->sizing_mode == EV_SIZING_BEST_FIT) {
+	if (view->priv->sizing_mode == EV_SIZING_BEST_FIT) {
 		requisition->width = 1;
 		requisition->height = 1;
 
@@ -3092,12 +3092,12 @@ ev_view_size_request_dual_page (EvView         *view,
 
 	/* Find the largest of the two. */
 	ev_view_get_page_size (view,
-			       view->current_page,
+			       view->priv->current_page,
 			       &width, &height);
-	if (view->current_page + 1 < ev_document_get_n_pages (view->document)) {
+	if (view->priv->current_page + 1 < ev_document_get_n_pages (view->priv->document)) {
 		gint width_2, height_2;
 		ev_view_get_page_size (view,
-				       view->current_page + 1,
+				       view->priv->current_page + 1,
 				       &width_2, &height_2);
 		if (width_2 > width) {
 			width = width_2;
@@ -3106,9 +3106,9 @@ ev_view_size_request_dual_page (EvView         *view,
 	}
 	compute_border (view, width, height, &border);
 
-	requisition->width = view->sizing_mode == EV_SIZING_FIT_WIDTH ? 1 :
-		((width + border.left + border.right) * 2) + (view->spacing * 3);
-	requisition->height = (height + border.top + border.bottom) + (view->spacing * 2);
+	requisition->width = view->priv->sizing_mode == EV_SIZING_FIT_WIDTH ? 1 :
+		((width + border.left + border.right) * 2) + (view->priv->spacing * 3);
+	requisition->height = (height + border.top + border.bottom) + (view->priv->spacing * 2);
 }
 
 static void
@@ -3118,19 +3118,19 @@ ev_view_size_request_single_page (EvView         *view,
 	GtkBorder border;
 	gint width, height;
 
-	if (view->sizing_mode == EV_SIZING_BEST_FIT) {
+	if (view->priv->sizing_mode == EV_SIZING_BEST_FIT) {
 		requisition->width = 1;
 		requisition->height = 1;
 
 		return;
 	}
 
-	ev_view_get_page_size (view, view->current_page, &width, &height);
+	ev_view_get_page_size (view, view->priv->current_page, &width, &height);
 	compute_border (view, width, height, &border);
 
-	requisition->width = view->sizing_mode == EV_SIZING_FIT_WIDTH ? 1 :
-		width + border.left + border.right + (2 * view->spacing);
-	requisition->height = height + border.top + border.bottom + (2 * view->spacing);
+	requisition->width = view->priv->sizing_mode == EV_SIZING_FIT_WIDTH ? 1 :
+		width + border.left + border.right + (2 * view->priv->spacing);
+	requisition->height = height + border.top + border.bottom + (2 * view->priv->spacing);
 }
 
 static void
@@ -3139,11 +3139,11 @@ ev_view_size_request (GtkWidget      *widget,
 {
 	EvView *view = EV_VIEW (widget);
 
-	if (view->document == NULL) {
-		view->requisition.width = 1;
-		view->requisition.height = 1;
+	if (view->priv->document == NULL) {
+		view->priv->requisition.width = 1;
+		view->priv->requisition.height = 1;
 
-		*requisition = view->requisition;
+		*requisition = view->priv->requisition;
 
 		return;
 	}
@@ -3151,9 +3151,9 @@ ev_view_size_request (GtkWidget      *widget,
 	/* Get zoom for size here when not called from
 	 * ev_view_size_allocate()
 	 */
-	if (!view->internal_size_request &&
-	    (view->sizing_mode == EV_SIZING_FIT_WIDTH ||
-	     view->sizing_mode == EV_SIZING_BEST_FIT)) {
+	if (!view->priv->internal_size_request &&
+	    (view->priv->sizing_mode == EV_SIZING_FIT_WIDTH ||
+	     view->priv->sizing_mode == EV_SIZING_BEST_FIT)) {
 		GtkAllocation allocation;
 
 		gtk_widget_get_allocation (widget, &allocation);
@@ -3162,16 +3162,16 @@ ev_view_size_request (GtkWidget      *widget,
 				       allocation.height);
 	}
 
-	if (view->continuous && view->dual_page)
-		ev_view_size_request_continuous_dual_page (view, &view->requisition);
-	else if (view->continuous)
-		ev_view_size_request_continuous (view, &view->requisition);
-	else if (view->dual_page)
-		ev_view_size_request_dual_page (view, &view->requisition);
+	if (view->priv->continuous && view->priv->dual_page)
+		ev_view_size_request_continuous_dual_page (view, &view->priv->requisition);
+	else if (view->priv->continuous)
+		ev_view_size_request_continuous (view, &view->priv->requisition);
+	else if (view->priv->dual_page)
+		ev_view_size_request_dual_page (view, &view->priv->requisition);
 	else
-		ev_view_size_request_single_page (view, &view->requisition);
+		ev_view_size_request_single_page (view, &view->priv->requisition);
 
-	*requisition = view->requisition;
+	*requisition = view->priv->requisition;
 }
 
 static void
@@ -3215,33 +3215,33 @@ ev_view_size_allocate (GtkWidget      *widget,
 					allocation->width,
 					allocation->height);
 
-	if (!view->document)
+	if (!view->priv->document)
 		return;
 
-	if (view->sizing_mode == EV_SIZING_FIT_WIDTH ||
-	    view->sizing_mode == EV_SIZING_BEST_FIT) {
+	if (view->priv->sizing_mode == EV_SIZING_FIT_WIDTH ||
+	    view->priv->sizing_mode == EV_SIZING_BEST_FIT) {
 		GtkRequisition req;
 
 		ev_view_zoom_for_size (view,
 				       allocation->width,
 				       allocation->height);
-		view->internal_size_request = TRUE;
+		view->priv->internal_size_request = TRUE;
 		ev_view_size_request (widget, &req);
-		view->internal_size_request = FALSE;
+		view->priv->internal_size_request = FALSE;
 	}
 
 	ev_view_set_adjustment_values (view, GTK_ORIENTATION_HORIZONTAL);
 	ev_view_set_adjustment_values (view, GTK_ORIENTATION_VERTICAL);
 
-	if (view->document)
+	if (view->priv->document)
 		view_update_range_and_current_page (view);
 
-	view->pending_scroll = SCROLL_TO_KEEP_POSITION;
-	view->pending_resize = FALSE;
-	view->pending_point.x = 0;
-	view->pending_point.y = 0;
+	view->priv->pending_scroll = SCROLL_TO_KEEP_POSITION;
+	view->priv->pending_resize = FALSE;
+	view->priv->pending_point.x = 0;
+	view->priv->pending_point.y = 0;
 
-	for (l = view->children; l && l->data; l = g_list_next (l)) {
+	for (l = view->priv->children; l && l->data; l = g_list_next (l)) {
 		GdkRectangle view_area;
 		EvViewChild *child = (EvViewChild *)l->data;
 
@@ -3249,18 +3249,18 @@ ev_view_size_allocate (GtkWidget      *widget,
 			continue;
 
 		doc_rect_to_view_rect (view, child->page, &child->doc_rect, &view_area);
-		view_area.x -= view->scroll_x;
-		view_area.y -= view->scroll_y;
+		view_area.x -= view->priv->scroll_x;
+		view_area.y -= view->priv->scroll_y;
 
 		gtk_widget_set_size_request (child->widget, view_area.width, view_area.height);
 		gtk_widget_size_allocate (child->widget, &view_area);
 	}
 
-	if (view->window_children)
+	if (view->priv->window_children)
 		gdk_window_get_origin (gtk_widget_get_window (GTK_WIDGET (view)),
 				       &root_x, &root_y);
 
-	for (l = view->window_children; l && l->data; l = g_list_next (l)) {
+	for (l = view->priv->window_children; l && l->data; l = g_list_next (l)) {
 		EvViewWindowChild *child;
 		EvRectangle        doc_rect;
 		GdkRectangle       view_rect;
@@ -3273,8 +3273,8 @@ ev_view_size_allocate (GtkWidget      *widget,
 			doc_rect.y1 = child->orig_y;
 		}
 		doc_rect_to_view_rect (view, child->page, &doc_rect, &view_rect);
-		view_rect.x -= view->scroll_x;
-		view_rect.y -= view->scroll_y;
+		view_rect.x -= view->priv->scroll_x;
+		view_rect.y -= view->priv->scroll_y;
 
 		if (view_rect.x != child->orig_x || view_rect.y != child->orig_y) {
 			child->parent_x = root_x;
@@ -3296,7 +3296,7 @@ ev_view_scroll_event (GtkWidget *widget, GdkEventScroll *event)
 	state = event->state & gtk_accelerator_get_default_mod_mask ();
 
 	if (state == GDK_CONTROL_MASK) {
-		ev_document_model_set_sizing_mode (view->model, EV_SIZING_FREE);
+		ev_document_model_set_sizing_mode (view->priv->model, EV_SIZING_FREE);
 		if (event->direction == GDK_SCROLL_UP ||
 		    event->direction == GDK_SCROLL_LEFT) {
 			if (ev_view_can_zoom_in (view)) {
@@ -3311,7 +3311,7 @@ ev_view_scroll_event (GtkWidget *widget, GdkEventScroll *event)
 		return TRUE;
 	}
 
-	view->jump_to_find_result = FALSE;
+	view->priv->jump_to_find_result = FALSE;
 
 	/* Shift+Wheel scrolls the in the perpendicular direction */
 	if (state & GDK_SHIFT_MASK) {
@@ -3328,7 +3328,7 @@ ev_view_scroll_event (GtkWidget *widget, GdkEventScroll *event)
 		state &= ~GDK_SHIFT_MASK;
 	}
 
-	if (state == 0 && view->sizing_mode == EV_SIZING_BEST_FIT && !view->continuous) {
+	if (state == 0 && view->priv->sizing_mode == EV_SIZING_BEST_FIT && !view->priv->continuous) {
 		switch (event->direction) {
 		        case GDK_SCROLL_DOWN:
 		        case GDK_SCROLL_RIGHT:
@@ -3354,7 +3354,7 @@ find_selection_for_page (EvView *view,
 {
 	GList *list;
 
-	for (list = view->selection_info.selections; list != NULL; list = list->next) {
+	for (list = view->priv->selection_info.selections; list != NULL; list = list->next) {
 		EvViewSelection *selection;
 
 		selection = (EvViewSelection *) list->data;
@@ -3406,13 +3406,13 @@ ev_view_draw (GtkWidget *widget,
 	gint         i;
 	GdkRectangle clip_rect;
 
-	if (view->document == NULL)
+	if (view->priv->document == NULL)
 		return FALSE;
 
         if (!gdk_cairo_get_clip_rectangle (cr, &clip_rect))
                 return FALSE;
 
-	for (i = view->start_page; i >= 0 && i <= view->end_page; i++) {
+	for (i = view->priv->start_page; i >= 0 && i <= view->priv->end_page; i++) {
 		GdkRectangle page_area;
 		GtkBorder border;
 		gboolean page_ready = TRUE;
@@ -3420,18 +3420,18 @@ ev_view_draw (GtkWidget *widget,
 		if (!ev_view_get_page_extents (view, i, &page_area, &border))
 			continue;
 
-		page_area.x -= view->scroll_x;
-		page_area.y -= view->scroll_y;
+		page_area.x -= view->priv->scroll_x;
+		page_area.y -= view->priv->scroll_y;
 
 		draw_one_page (view, i, cr, &page_area, &border, &clip_rect, &page_ready);
 
-		if (page_ready && view->find_pages && view->highlight_find_results)
+		if (page_ready && view->priv->find_pages && view->priv->highlight_find_results)
 			highlight_find_results (view, cr, i);
-		if (page_ready && EV_IS_DOCUMENT_ANNOTATIONS (view->document))
+		if (page_ready && EV_IS_DOCUMENT_ANNOTATIONS (view->priv->document))
 			show_annotation_windows (view, i);
-		if (page_ready && view->focus_annotation)
+		if (page_ready && view->priv->focus_annotation)
                         focus_annotation (view, cr, i, &clip_rect);
-		if (page_ready && view->synctex_result)
+		if (page_ready && view->priv->synctex_result)
 			highlight_forward_search_results (view, cr, i);
 	}
 
@@ -3490,12 +3490,12 @@ get_link_area (EvView       *view,
 	gint           page;
 	gint           x_offset = 0, y_offset = 0;
 
-	x += view->scroll_x;
-	y += view->scroll_y;
+	x += view->priv->scroll_x;
+	y += view->priv->scroll_y;
 	
 	find_page_at_location (view, x, y, &page, &x_offset, &y_offset);
 	
-	link_mapping = ev_page_cache_get_link_mapping (view->page_cache, page);
+	link_mapping = ev_page_cache_get_link_mapping (view->priv->page_cache, page);
 	ev_view_get_area_from_mapping (view, page,
 				       link_mapping,
 				       link, area);
@@ -3512,12 +3512,12 @@ get_annot_area (EvView       *view,
 	gint           page;
 	gint           x_offset = 0, y_offset = 0;
 
-	x += view->scroll_x;
-	y += view->scroll_y;
+	x += view->priv->scroll_x;
+	y += view->priv->scroll_y;
 
 	find_page_at_location (view, x, y, &page, &x_offset, &y_offset);
 
-	annot_mapping = ev_page_cache_get_annot_mapping (view->page_cache, page);
+	annot_mapping = ev_page_cache_get_annot_mapping (view->priv->page_cache, page);
 	ev_view_get_area_from_mapping (view, page,
 				       annot_mapping,
 				       annot, area);
@@ -3576,26 +3576,26 @@ start_selection_for_event (EvView         *view,
 {
 	clear_selection (view);
 
-	view->selection_info.start.x = event->x + view->scroll_x;
-	view->selection_info.start.y = event->y + view->scroll_y;
+	view->priv->selection_info.start.x = event->x + view->priv->scroll_x;
+	view->priv->selection_info.start.y = event->y + view->priv->scroll_y;
 
 	switch (event->type) {
 	        case GDK_2BUTTON_PRESS:
-			view->selection_info.style = EV_SELECTION_STYLE_WORD;
+			view->priv->selection_info.style = EV_SELECTION_STYLE_WORD;
 			break;
 	        case GDK_3BUTTON_PRESS:
-			view->selection_info.style = EV_SELECTION_STYLE_LINE;
+			view->priv->selection_info.style = EV_SELECTION_STYLE_LINE;
 			break;
 	        default:
-			view->selection_info.style = EV_SELECTION_STYLE_GLYPH;
+			view->priv->selection_info.style = EV_SELECTION_STYLE_GLYPH;
 			return;
 	}
 
 	/* In case of WORD or LINE, compute selections now */
 	compute_selections (view,
-			    view->selection_info.style,
-			    &(view->selection_info.start),
-			    &(view->selection_info.start));
+			    view->priv->selection_info.style,
+			    &(view->priv->selection_info.start),
+			    &(view->priv->selection_info.start));
 }
 
 static gboolean
@@ -3604,28 +3604,28 @@ ev_view_button_press_event (GtkWidget      *widget,
 {
 	EvView *view = EV_VIEW (widget);
 
-	if (!view->document)
+	if (!view->priv->document)
 		return FALSE;
 	
 	if (!gtk_widget_has_focus (widget)) {
 		gtk_widget_grab_focus (widget);
 	}
 
-	if (view->window_child_focus) {
+	if (view->priv->window_child_focus) {
 		EvAnnotationWindow *window;
 
-		window = EV_ANNOTATION_WINDOW (view->window_child_focus->window);
+		window = EV_ANNOTATION_WINDOW (view->priv->window_child_focus->window);
 		ev_annotation_window_ungrab_focus (window);
-		view->window_child_focus = NULL;
+		view->priv->window_child_focus = NULL;
 	}
 	
-	view->pressed_button = event->button;
-	view->selection_info.in_drag = FALSE;
+	view->priv->pressed_button = event->button;
+	view->priv->selection_info.in_drag = FALSE;
 
-	if (view->adding_annot)
+	if (view->priv->adding_annot)
 		return FALSE;
 
-	if (view->scroll_info.autoscrolling)
+	if (view->priv->scroll_info.autoscrolling)
 		return TRUE;
 	
 	switch (event->button) {
@@ -3637,13 +3637,13 @@ ev_view_button_press_event (GtkWidget      *widget,
 			if (event->state & GDK_CONTROL_MASK)
 				return ev_view_synctex_backward_search (view, event->x , event->y);
 
-			if (EV_IS_SELECTION (view->document) && view->selection_info.selections) {
+			if (EV_IS_SELECTION (view->priv->document) && view->priv->selection_info.selections) {
 				if (event->type == GDK_3BUTTON_PRESS) {
 					start_selection_for_event (view, event);
 				} else if (location_in_selected_text (view,
-							       event->x + view->scroll_x,
-							       event->y + view->scroll_y)) {
-					view->selection_info.in_drag = TRUE;
+							       event->x + view->priv->scroll_x,
+							       event->y + view->priv->scroll_y)) {
+					view->priv->selection_info.in_drag = TRUE;
 				} else {
 					start_selection_for_event (view, event);
 				}
@@ -3654,28 +3654,28 @@ ev_view_button_press_event (GtkWidget      *widget,
 			} else if ((field = ev_view_get_form_field_at_location (view, event->x, event->y))) {
 				ev_view_remove_all (view);
 				ev_view_handle_form_field (view, field, event->x, event->y);
-			} else if (!location_in_text (view, event->x + view->scroll_x, event->y + view->scroll_y) &&
+			} else if (!location_in_text (view, event->x + view->priv->scroll_x, event->y + view->priv->scroll_y) &&
 				   (image = ev_view_get_image_at_location (view, event->x, event->y))) {
-				if (view->image_dnd_info.image)
-					g_object_unref (view->image_dnd_info.image);
-				view->image_dnd_info.image = g_object_ref (image);
-				view->image_dnd_info.in_drag = TRUE;
+				if (view->priv->image_dnd_info.image)
+					g_object_unref (view->priv->image_dnd_info.image);
+				view->priv->image_dnd_info.image = g_object_ref (image);
+				view->priv->image_dnd_info.in_drag = TRUE;
 
-				view->image_dnd_info.start.x = event->x + view->scroll_x;
-				view->image_dnd_info.start.y = event->y + view->scroll_y;
+				view->priv->image_dnd_info.start.x = event->x + view->priv->scroll_x;
+				view->priv->image_dnd_info.start.y = event->y + view->priv->scroll_y;
 			} else {
 				ev_view_remove_all (view);
 
-				if (view->synctex_result) {
-					g_free (view->synctex_result);
-					view->synctex_result = NULL;
+				if (view->priv->synctex_result) {
+					g_free (view->priv->synctex_result);
+					view->priv->synctex_result = NULL;
 					gtk_widget_queue_draw (widget);
 				}
 
-				if (view->focus_annotation)
-					view->focus_annotation = NULL;
+				if (view->priv->focus_annotation)
+					view->priv->focus_annotation = NULL;
 
-				if (EV_IS_SELECTION (view->document))
+				if (EV_IS_SELECTION (view->priv->document))
 					start_selection_for_event (view, event);
 			}
 		}			
@@ -3683,16 +3683,16 @@ ev_view_button_press_event (GtkWidget      *widget,
 		case 2:
 			/* use root coordinates as reference point because
 			 * scrolling changes window relative coordinates */
-			view->drag_info.start.x = event->x_root;
-			view->drag_info.start.y = event->y_root;
-			view->drag_info.hadj = gtk_adjustment_get_value (view->hadjustment);
-			view->drag_info.vadj = gtk_adjustment_get_value (view->vadjustment);
+			view->priv->drag_info.start.x = event->x_root;
+			view->priv->drag_info.start.y = event->y_root;
+			view->priv->drag_info.hadj = gtk_adjustment_get_value (view->priv->hadjustment);
+			view->priv->drag_info.vadj = gtk_adjustment_get_value (view->priv->vadjustment);
 
 			ev_view_set_cursor (view, EV_VIEW_CURSOR_DRAG);
 
 			return TRUE;
 		case 3:
-			view->scroll_info.start_y = event->y;
+			view->priv->scroll_info.start_y = event->y;
 			return ev_view_do_popup_menu (view, event->x, event->y);
 	}
 	
@@ -3717,8 +3717,8 @@ ev_view_drag_data_get (GtkWidget        *widget,
 
 	switch (info) {
 	        case TARGET_DND_TEXT:
-			if (EV_IS_SELECTION (view->document) &&
-			    view->selection_info.selections) {
+			if (EV_IS_SELECTION (view->priv->document) &&
+			    view->priv->selection_info.selections) {
 				gchar *text;
 
 				text = get_selected_text (view);
@@ -3729,12 +3729,12 @@ ev_view_drag_data_get (GtkWidget        *widget,
 			}
 			break;
 	        case TARGET_DND_IMAGE:
-			if (view->image_dnd_info.image) {
+			if (view->priv->image_dnd_info.image) {
 				GdkPixbuf *pixbuf;
 
 				ev_document_doc_mutex_lock ();
-				pixbuf = ev_document_images_get_image (EV_DOCUMENT_IMAGES (view->document),
-								       view->image_dnd_info.image);
+				pixbuf = ev_document_images_get_image (EV_DOCUMENT_IMAGES (view->priv->document),
+								       view->priv->image_dnd_info.image);
 				ev_document_doc_mutex_unlock ();
 				
 				gtk_selection_data_set_pixbuf (selection_data, pixbuf);
@@ -3742,17 +3742,17 @@ ev_view_drag_data_get (GtkWidget        *widget,
 			}
 			break;
 	        case TARGET_DND_URI:
-			if (view->image_dnd_info.image) {
+			if (view->priv->image_dnd_info.image) {
 				GdkPixbuf   *pixbuf;
 				const gchar *tmp_uri;
 				gchar       *uris[2];
 
 				ev_document_doc_mutex_lock ();
-				pixbuf = ev_document_images_get_image (EV_DOCUMENT_IMAGES (view->document),
-								       view->image_dnd_info.image);
+				pixbuf = ev_document_images_get_image (EV_DOCUMENT_IMAGES (view->priv->document),
+								       view->priv->image_dnd_info.image);
 				ev_document_doc_mutex_unlock ();
 				
-				tmp_uri = ev_image_save_tmp (view->image_dnd_info.image, pixbuf);
+				tmp_uri = ev_image_save_tmp (view->priv->image_dnd_info.image, pixbuf);
 				g_object_unref (pixbuf);
 
 				uris[0] = (gchar *)tmp_uri;
@@ -3781,10 +3781,10 @@ static gboolean
 selection_update_idle_cb (EvView *view)
 {
 	compute_selections (view,
-			    view->selection_info.style,
-			    &view->selection_info.start,
-			    &view->motion);
-	view->selection_update_id = 0;
+			    view->priv->selection_info.style,
+			    &view->priv->selection_info.start,
+			    &view->priv->motion);
+	view->priv->selection_update_id = 0;
 	return FALSE;
 }
 
@@ -3805,11 +3805,11 @@ selection_scroll_timeout_cb (EvView *view)
 	}
 
 	if (shift)
-		gtk_adjustment_set_value (view->vadjustment,
-					  CLAMP (gtk_adjustment_get_value (view->vadjustment) + shift,
-						 gtk_adjustment_get_lower (view->vadjustment),
-						 gtk_adjustment_get_upper (view->vadjustment) -
-						 gtk_adjustment_get_page_size (view->vadjustment)));
+		gtk_adjustment_set_value (view->priv->vadjustment,
+					  CLAMP (gtk_adjustment_get_value (view->priv->vadjustment) + shift,
+						 gtk_adjustment_get_lower (view->priv->vadjustment),
+						 gtk_adjustment_get_upper (view->priv->vadjustment) -
+						 gtk_adjustment_get_page_size (view->priv->vadjustment)));
 
 	if (x > allocation.width) {
 		shift = (x - allocation.width) / 2;
@@ -3818,11 +3818,11 @@ selection_scroll_timeout_cb (EvView *view)
 	}
 
 	if (shift)
-		gtk_adjustment_set_value (view->hadjustment,
-					  CLAMP (gtk_adjustment_get_value (view->hadjustment) + shift,
-						 gtk_adjustment_get_lower (view->hadjustment),
-						 gtk_adjustment_get_upper (view->hadjustment) -
-						 gtk_adjustment_get_page_size (view->hadjustment)));
+		gtk_adjustment_set_value (view->priv->hadjustment,
+					  CLAMP (gtk_adjustment_get_value (view->priv->hadjustment) + shift,
+						 gtk_adjustment_get_lower (view->priv->hadjustment),
+						 gtk_adjustment_get_upper (view->priv->hadjustment) -
+						 gtk_adjustment_get_page_size (view->priv->hadjustment)));
 
 	return TRUE;
 }
@@ -3831,20 +3831,20 @@ static gboolean
 ev_view_drag_update_momentum (EvView *view)
 {
 	int i;
-	if (!view->drag_info.in_drag)
+	if (!view->priv->drag_info.in_drag)
 		return FALSE;
 	
 	for (i = DRAG_HISTORY - 1; i > 0; i--) {
-		view->drag_info.buffer[i].x = view->drag_info.buffer[i-1].x;
-		view->drag_info.buffer[i].y = view->drag_info.buffer[i-1].y;
+		view->priv->drag_info.buffer[i].x = view->priv->drag_info.buffer[i-1].x;
+		view->priv->drag_info.buffer[i].y = view->priv->drag_info.buffer[i-1].y;
 	}
 
 	/* Momentum is a moving average of 10ms granularity over
 	 * the last 100ms with each 10ms stored in buffer. 
 	 */
 	
-	view->drag_info.momentum.x = (view->drag_info.buffer[DRAG_HISTORY - 1].x - view->drag_info.buffer[0].x);
-	view->drag_info.momentum.y = (view->drag_info.buffer[DRAG_HISTORY - 1].y - view->drag_info.buffer[0].y);
+	view->priv->drag_info.momentum.x = (view->priv->drag_info.buffer[DRAG_HISTORY - 1].x - view->priv->drag_info.buffer[0].x);
+	view->priv->drag_info.momentum.y = (view->priv->drag_info.buffer[DRAG_HISTORY - 1].y - view->priv->drag_info.buffer[0].y);
 
 	return TRUE;
 }
@@ -3858,43 +3858,43 @@ ev_view_scroll_drag_release (EvView *view)
 	gdouble h_upper, v_upper;
 	GtkAllocation allocation;
 
-	view->drag_info.momentum.x /= 1.2;
-	view->drag_info.momentum.y /= 1.2; /* Alter these constants to change "friction" */
+	view->priv->drag_info.momentum.x /= 1.2;
+	view->priv->drag_info.momentum.y /= 1.2; /* Alter these constants to change "friction" */
 
 	gtk_widget_get_allocation (GTK_WIDGET (view), &allocation);
 
-	h_page_size = gtk_adjustment_get_page_size (view->hadjustment);
-	v_page_size = gtk_adjustment_get_page_size (view->vadjustment);
+	h_page_size = gtk_adjustment_get_page_size (view->priv->hadjustment);
+	v_page_size = gtk_adjustment_get_page_size (view->priv->vadjustment);
 
 	dhadj_value = h_page_size *
-		      (gdouble)view->drag_info.momentum.x / allocation.width;
+		      (gdouble)view->priv->drag_info.momentum.x / allocation.width;
 	dvadj_value = v_page_size *
-		      (gdouble)view->drag_info.momentum.y / allocation.height;
+		      (gdouble)view->priv->drag_info.momentum.y / allocation.height;
 
-	oldhadjustment = gtk_adjustment_get_value (view->hadjustment);
-	oldvadjustment = gtk_adjustment_get_value (view->vadjustment);
+	oldhadjustment = gtk_adjustment_get_value (view->priv->hadjustment);
+	oldvadjustment = gtk_adjustment_get_value (view->priv->vadjustment);
 
-	h_upper = gtk_adjustment_get_upper (view->hadjustment);
-	v_upper = gtk_adjustment_get_upper (view->vadjustment);
+	h_upper = gtk_adjustment_get_upper (view->priv->hadjustment);
+	v_upper = gtk_adjustment_get_upper (view->priv->vadjustment);
 
 	/* When we reach the edges, we need either to absorb some momentum and bounce by
 	 * multiplying it on -0.5 or stop scrolling by setting momentum to 0. */
 	if (((oldhadjustment + dhadj_value) > (h_upper - h_page_size)) ||
 	    ((oldhadjustment + dhadj_value) < 0))
-		view->drag_info.momentum.x = 0;
+		view->priv->drag_info.momentum.x = 0;
 	if (((oldvadjustment + dvadj_value) > (v_upper - v_page_size)) ||
 	    ((oldvadjustment + dvadj_value) < 0))
-		view->drag_info.momentum.y = 0;
+		view->priv->drag_info.momentum.y = 0;
 
-	gtk_adjustment_set_value (view->hadjustment,
+	gtk_adjustment_set_value (view->priv->hadjustment,
 				  MIN (oldhadjustment + dhadj_value,
 				       h_upper - h_page_size));
-	gtk_adjustment_set_value (view->vadjustment,
+	gtk_adjustment_set_value (view->priv->vadjustment,
 				  MIN (oldvadjustment + dvadj_value,
 				       v_upper - v_page_size));
 
-	if (((view->drag_info.momentum.x < 1) && (view->drag_info.momentum.x > -1)) &&
-	    ((view->drag_info.momentum.y < 1) && (view->drag_info.momentum.y > -1)))
+	if (((view->priv->drag_info.momentum.x < 1) && (view->priv->drag_info.momentum.x > -1)) &&
+	    ((view->priv->drag_info.momentum.y < 1) && (view->priv->drag_info.momentum.y > -1)))
 		return FALSE;
 	else
 		return TRUE;
@@ -3908,7 +3908,7 @@ ev_view_motion_notify_event (GtkWidget      *widget,
 	GdkWindow *window;
 	gint       x, y;
 
-	if (!view->document)
+	if (!view->priv->document)
 		return FALSE;
 
 	window = gtk_widget_get_window (widget);
@@ -3920,15 +3920,15 @@ ev_view_motion_notify_event (GtkWidget      *widget,
 	    y = event->y;
 	}
 
-	if (view->scroll_info.autoscrolling) {
-		view->scroll_info.last_y = y;
+	if (view->priv->scroll_info.autoscrolling) {
+		view->priv->scroll_info.last_y = y;
 		return TRUE;
 	}
 
-	if (view->selection_info.in_drag) {
+	if (view->priv->selection_info.in_drag) {
 		if (gtk_drag_check_threshold (widget,
-					      view->selection_info.start.x,
-					      view->selection_info.start.y,
+					      view->priv->selection_info.start.x,
+					      view->priv->selection_info.start.y,
 					      x, y)) {
 			GtkTargetList *target_list = gtk_target_list_new (NULL, 0);
 
@@ -3938,16 +3938,16 @@ ev_view_motion_notify_event (GtkWidget      *widget,
 					GDK_ACTION_COPY,
 					1, (GdkEvent *)event);
 
-			view->selection_info.in_drag = FALSE;
+			view->priv->selection_info.in_drag = FALSE;
 
 			gtk_target_list_unref (target_list);
 
 			return TRUE;
 		}
-	} else if (view->image_dnd_info.in_drag) {
+	} else if (view->priv->image_dnd_info.in_drag) {
 		if (gtk_drag_check_threshold (widget,
-					      view->selection_info.start.x,
-					      view->selection_info.start.y,
+					      view->priv->selection_info.start.x,
+					      view->priv->selection_info.start.y,
 					      x, y)) {
 			GtkTargetList *target_list = gtk_target_list_new (NULL, 0);
 
@@ -3958,7 +3958,7 @@ ev_view_motion_notify_event (GtkWidget      *widget,
 					GDK_ACTION_COPY,
 					1, (GdkEvent *)event);
 
-			view->image_dnd_info.in_drag = FALSE;
+			view->priv->image_dnd_info.in_drag = FALSE;
 
 			gtk_target_list_unref (target_list);
 
@@ -3966,86 +3966,86 @@ ev_view_motion_notify_event (GtkWidget      *widget,
 		}
 	}
 	
-	switch (view->pressed_button) {
+	switch (view->priv->pressed_button) {
 	case 1:
 		/* For the Evince 0.4.x release, we limit selection to un-rotated
 		 * documents only.
 		 */
-		if (view->rotation != 0)
+		if (view->priv->rotation != 0)
 			return FALSE;
 
 		/* Schedule timeout to scroll during selection and additionally 
 		 * scroll once to allow arbitrary speed. */
-		if (!view->selection_scroll_id)
-		    view->selection_scroll_id = g_timeout_add (SCROLL_TIME,
+		if (!view->priv->selection_scroll_id)
+		    view->priv->selection_scroll_id = g_timeout_add (SCROLL_TIME,
 							       (GSourceFunc)selection_scroll_timeout_cb,
 							       view);
 		else 
 		    selection_scroll_timeout_cb (view);
 
-		view->selection_info.in_selection = TRUE;
-		view->motion.x = x + view->scroll_x;
-		view->motion.y = y + view->scroll_y;
+		view->priv->selection_info.in_selection = TRUE;
+		view->priv->motion.x = x + view->priv->scroll_x;
+		view->priv->motion.y = y + view->priv->scroll_y;
 
 		/* Queue an idle to handle the motion.  We do this because	
 		 * handling any selection events in the motion could be slower	
 		 * than new motion events reach us.  We always put it in the	
 		 * idle to make sure we catch up and don't visibly lag the	
 		 * mouse. */
-		if (!view->selection_update_id)
-			view->selection_update_id = g_idle_add ((GSourceFunc)selection_update_idle_cb, view);
+		if (!view->priv->selection_update_id)
+			view->priv->selection_update_id = g_idle_add ((GSourceFunc)selection_update_idle_cb, view);
 
 		return TRUE;
 	case 2:
-		if (!view->drag_info.in_drag) {
+		if (!view->priv->drag_info.in_drag) {
 			gboolean start;
 			int i;
 
 			start = gtk_drag_check_threshold (widget,
-							  view->drag_info.start.x,
-							  view->drag_info.start.y,
+							  view->priv->drag_info.start.x,
+							  view->priv->drag_info.start.y,
 							  event->x_root,
 							  event->y_root);
-			view->drag_info.in_drag = start;
-			view->drag_info.drag_timeout_id = g_timeout_add (10,
+			view->priv->drag_info.in_drag = start;
+			view->priv->drag_info.drag_timeout_id = g_timeout_add (10,
 				(GSourceFunc)ev_view_drag_update_momentum, view);
 			/* Set 100 to choose how long it takes to build up momentum */
 			/* Clear out previous momentum info: */
 			for (i = 0; i < DRAG_HISTORY; i++) {
-				view->drag_info.buffer[i].x = event->x;
-				view->drag_info.buffer[i].y = event->y;
+				view->priv->drag_info.buffer[i].x = event->x;
+				view->priv->drag_info.buffer[i].y = event->y;
 			}
-			view->drag_info.momentum.x = 0;
-			view->drag_info.momentum.y = 0;
+			view->priv->drag_info.momentum.x = 0;
+			view->priv->drag_info.momentum.y = 0;
 		}
 
-		if (view->drag_info.in_drag) {
+		if (view->priv->drag_info.in_drag) {
 			int dx, dy;
 			gdouble dhadj_value, dvadj_value;
 			GtkAllocation allocation;
 
-			view->drag_info.buffer[0].x = event->x;
-			view->drag_info.buffer[0].y = event->y;
+			view->priv->drag_info.buffer[0].x = event->x;
+			view->priv->drag_info.buffer[0].y = event->y;
 
-			dx = event->x_root - view->drag_info.start.x;
-			dy = event->y_root - view->drag_info.start.y;
+			dx = event->x_root - view->priv->drag_info.start.x;
+			dy = event->y_root - view->priv->drag_info.start.y;
 
 			gtk_widget_get_allocation (widget, &allocation);
 
-			dhadj_value = gtk_adjustment_get_page_size (view->hadjustment) *
+			dhadj_value = gtk_adjustment_get_page_size (view->priv->hadjustment) *
 				      (gdouble)dx / allocation.width;
-			dvadj_value = gtk_adjustment_get_page_size (view->vadjustment) *
+			dvadj_value = gtk_adjustment_get_page_size (view->priv->vadjustment) *
 				      (gdouble)dy / allocation.height;
 
 			/* clamp scrolling to visible area */
-			gtk_adjustment_set_value (view->hadjustment,
-						  MIN (view->drag_info.hadj - dhadj_value,
-						       gtk_adjustment_get_upper (view->hadjustment) -
-						       gtk_adjustment_get_page_size (view->hadjustment)));
-			gtk_adjustment_set_value (view->vadjustment,
-						  MIN (view->drag_info.vadj - dvadj_value,
-						       gtk_adjustment_get_upper (view->vadjustment) -
-						       gtk_adjustment_get_page_size (view->vadjustment)));
+			gtk_adjustment_set_value (view->priv->hadjustment,
+						  MIN (view->priv->drag_info.hadj - dhadj_value,
+						       gtk_adjustment_get_upper (view->priv->hadjustment) -
+						       gtk_adjustment_get_page_size (view->priv->hadjustment)));
+			gtk_adjustment_set_value (view->priv->vadjustment,
+						  MIN (view->priv->drag_info.vadj - dvadj_value,
+						       gtk_adjustment_get_upper (view->priv->vadjustment) -
+						       gtk_adjustment_get_page_size (view->priv->vadjustment)));
 
 			return TRUE;
 		}
@@ -4065,70 +4065,70 @@ ev_view_button_release_event (GtkWidget      *widget,
 	EvView *view = EV_VIEW (widget);
 	EvLink *link = NULL;
 
-	view->image_dnd_info.in_drag = FALSE;
+	view->priv->image_dnd_info.in_drag = FALSE;
 
-	if (view->scroll_info.autoscrolling) {
+	if (view->priv->scroll_info.autoscrolling) {
 		ev_view_autoscroll_stop (view);
-		view->pressed_button = -1;
+		view->priv->pressed_button = -1;
 
 		return TRUE;
 	}
 
-	if (view->pressed_button == 1 && event->state & GDK_CONTROL_MASK) {
-		view->pressed_button = -1;
+	if (view->priv->pressed_button == 1 && event->state & GDK_CONTROL_MASK) {
+		view->priv->pressed_button = -1;
 		return TRUE;
 	}
 
-	if (view->drag_info.in_drag) {
-		view->drag_info.release_timeout_id =
+	if (view->priv->drag_info.in_drag) {
+		view->priv->drag_info.release_timeout_id =
 			g_timeout_add (20,
 				       (GSourceFunc)ev_view_scroll_drag_release, view);
 	}
 
-	if (view->document && !view->drag_info.in_drag && view->pressed_button != 3) {
+	if (view->priv->document && !view->priv->drag_info.in_drag && view->priv->pressed_button != 3) {
 		link = ev_view_get_link_at_location (view, event->x, event->y);
 	}
 
-	view->drag_info.in_drag = FALSE;
+	view->priv->drag_info.in_drag = FALSE;
 
-	if (view->adding_annot && view->pressed_button == 1) {
-		view->adding_annot = FALSE;
+	if (view->priv->adding_annot && view->priv->pressed_button == 1) {
+		view->priv->adding_annot = FALSE;
 		ev_view_handle_cursor_over_xy (view, event->x, event->y);
-		view->pressed_button = -1;
+		view->priv->pressed_button = -1;
 
 		ev_view_create_annotation (view,
-					   view->adding_annot_type,
-					   event->x + view->scroll_x,
-					   event->y + view->scroll_y);
+					   view->priv->adding_annot_type,
+					   event->x + view->priv->scroll_x,
+					   event->y + view->priv->scroll_y);
 
 		return FALSE;
 	}
 
-	if (view->pressed_button == 2) {
+	if (view->priv->pressed_button == 2) {
 		ev_view_handle_cursor_over_xy (view, event->x, event->y);
 	}
 
-	view->pressed_button = -1;
+	view->priv->pressed_button = -1;
 
-	if (view->selection_scroll_id) {
-	    g_source_remove (view->selection_scroll_id);
-	    view->selection_scroll_id = 0;
+	if (view->priv->selection_scroll_id) {
+	    g_source_remove (view->priv->selection_scroll_id);
+	    view->priv->selection_scroll_id = 0;
 	}
-	if (view->selection_update_id) {
-	    g_source_remove (view->selection_update_id);
-	    view->selection_update_id = 0;
+	if (view->priv->selection_update_id) {
+	    g_source_remove (view->priv->selection_update_id);
+	    view->priv->selection_update_id = 0;
 	}
 
-	if (view->selection_info.selections) {
+	if (view->priv->selection_info.selections) {
 		clear_link_selected (view);
 		ev_view_update_primary_selection (view);
 		
-		if (view->selection_info.in_drag) {
+		if (view->priv->selection_info.in_drag) {
 			clear_selection (view);
 			gtk_widget_queue_draw (widget);
 		}
 		
-		view->selection_info.in_drag = FALSE;
+		view->priv->selection_info.in_drag = FALSE;
 	} else if (link) {
 		if (event->button == 2) {
 			EvLinkAction    *action;
@@ -4158,22 +4158,22 @@ ev_view_key_press_event (GtkWidget   *widget,
 {
 	EvView *view = EV_VIEW (widget);
 
-	if (!view->document)
+	if (!view->priv->document)
 		return FALSE;
 
 	if (!gtk_widget_has_focus (widget)) {
 		/* Forward key events to current focused window child */
-		if (view->window_child_focus) {
+		if (view->priv->window_child_focus) {
 			GdkEventKey *new_event;
 			gboolean     handled;
 
 			new_event = (GdkEventKey *) gdk_event_copy ((GdkEvent *)event);
 			g_object_unref (new_event->window);
-			new_event->window = gtk_widget_get_window (view->window_child_focus->window);
+			new_event->window = gtk_widget_get_window (view->priv->window_child_focus->window);
 			if (new_event->window)
 				g_object_ref (new_event->window);
-			gtk_widget_realize (view->window_child_focus->window);
-			handled = gtk_widget_event (view->window_child_focus->window, (GdkEvent *)new_event);
+			gtk_widget_realize (view->priv->window_child_focus->window);
+			handled = gtk_widget_event (view->priv->window_child_focus->window, (GdkEvent *)new_event);
 			gdk_event_free ((GdkEvent *)new_event);
 
 			return handled;
@@ -4189,8 +4189,10 @@ static gint
 ev_view_focus_in (GtkWidget     *widget,
 		  GdkEventFocus *event)
 {
-	if (EV_VIEW (widget)->pixbuf_cache)
-		ev_pixbuf_cache_style_changed (EV_VIEW (widget)->pixbuf_cache);
+	EvPixbufCache *pixbuf_cache = EV_VIEW (widget)->priv->pixbuf_cache;
+
+	if (pixbuf_cache)
+		ev_pixbuf_cache_style_changed (pixbuf_cache);
 	gtk_widget_queue_draw (widget);
 
 	return FALSE;
@@ -4200,8 +4202,10 @@ static gint
 ev_view_focus_out (GtkWidget     *widget,
 		   GdkEventFocus *event)
 {
-	if (EV_VIEW (widget)->pixbuf_cache)
-		ev_pixbuf_cache_style_changed (EV_VIEW (widget)->pixbuf_cache);
+        EvPixbufCache *pixbuf_cache = EV_VIEW (widget)->priv->pixbuf_cache;
+
+	if (pixbuf_cache)
+		ev_pixbuf_cache_style_changed (pixbuf_cache);
 	gtk_widget_queue_draw (widget);
 
 	return FALSE;
@@ -4212,7 +4216,7 @@ ev_view_leave_notify_event (GtkWidget *widget, GdkEventCrossing   *event)
 {
 	EvView *view = EV_VIEW (widget);
 
-	if (view->cursor != EV_VIEW_CURSOR_NORMAL)
+	if (view->priv->cursor != EV_VIEW_CURSOR_NORMAL)
 		ev_view_set_cursor (view, EV_VIEW_CURSOR_NORMAL);
 
 	return FALSE;
@@ -4231,8 +4235,10 @@ ev_view_enter_notify_event (GtkWidget *widget, GdkEventCrossing   *event)
 static void
 ev_view_style_updated (GtkWidget *widget)
 {
-	if (EV_VIEW (widget)->pixbuf_cache)
-		ev_pixbuf_cache_style_changed (EV_VIEW (widget)->pixbuf_cache);
+        EvPixbufCache *pixbuf_cache = EV_VIEW (widget)->priv->pixbuf_cache;
+
+	if (pixbuf_cache)
+		ev_pixbuf_cache_style_changed (pixbuf_cache);
 
 	GTK_WIDGET_CLASS (ev_view_parent_class)->style_updated (widget);
 }
@@ -4254,8 +4260,8 @@ draw_rubberband (EvView             *view,
 
 	cairo_set_source_rgba (cr, color.red, color.green, color.blue, alpha);
 	cairo_rectangle (cr,
-			 rect->x - view->scroll_x,
-			 rect->y - view->scroll_y,
+			 rect->x - view->priv->scroll_x,
+			 rect->y - view->priv->scroll_y,
 			 rect->width, rect->height);
 	cairo_fill_preserve (cr);
 
@@ -4280,7 +4286,7 @@ highlight_find_results (EvView *view,
 		GdkRectangle view_rectangle;
 		gdouble      alpha;
 
-		if (i == view->find_result && page == view->current_page) {
+		if (i == view->priv->find_result && page == view->priv->current_page) {
 			alpha = 0.6;
 		} else {
 			alpha = 0.3;
@@ -4298,7 +4304,7 @@ highlight_forward_search_results (EvView *view,
                                   int page)
 {
 	GdkRectangle rect;
-	EvMapping   *mapping = view->synctex_result;
+	EvMapping   *mapping = view->priv->synctex_result;
 
 	if (GPOINTER_TO_INT (mapping->data) != page)
 		return;
@@ -4308,8 +4314,8 @@ highlight_forward_search_results (EvView *view,
         cairo_save (cr);
 	cairo_set_source_rgb (cr, 1., 0., 0.);
 	cairo_rectangle (cr,
-			 rect.x - view->scroll_x,
-			 rect.y - view->scroll_y,
+			 rect.x - view->priv->scroll_x,
+			 rect.y - view->priv->scroll_y,
 			 rect.width, rect.height);
 	cairo_stroke (cr);
 	cairo_restore (cr);
@@ -4323,7 +4329,7 @@ focus_annotation (EvView       *view,
 {
 	GtkWidget    *widget = GTK_WIDGET (view);
 	GdkRectangle  rect;
-	EvMapping    *mapping = view->focus_annotation;
+	EvMapping    *mapping = view->priv->focus_annotation;
 	EvAnnotation *annot = (EvAnnotation *)mapping->data;
 
 	if (ev_annotation_get_page_index (annot) != page)
@@ -4333,8 +4339,8 @@ focus_annotation (EvView       *view,
 
         gtk_render_focus (gtk_widget_get_style_context (widget),
                           cr,
-                          rect.x - view->scroll_x,
-                          rect.y - view->scroll_y,
+                          rect.x - view->priv->scroll_x,
+                          rect.y - view->priv->scroll_y,
                           rect.width + 1, rect.height + 1);
 }
 
@@ -4352,7 +4358,7 @@ draw_one_page (EvView       *view,
 	gint         current_page;
 	gboolean     inverted_colors;
 
-	g_assert (view->document);
+	g_assert (view->priv->document);
 
 	if (! gdk_rectangle_intersect (page_area, expose_area, &overlap))
 		return;
@@ -4366,8 +4372,8 @@ draw_one_page (EvView       *view,
 	real_page_area.height -= (border->top + border->bottom);
 	*page_ready = TRUE;
 
-	current_page = ev_document_model_get_page (view->model);
-	inverted_colors = ev_document_model_get_inverted_colors (view->model);
+	current_page = ev_document_model_get_page (view->priv->model);
+	inverted_colors = ev_document_model_get_inverted_colors (view->priv->model);
 	ev_document_misc_paint_one_page (cr,
 					 GTK_WIDGET (view),
 					 page_area, border,
@@ -4381,7 +4387,7 @@ draw_one_page (EvView       *view,
 		gint             selection_width, selection_height;
 		cairo_surface_t *selection_surface = NULL;
 
-		page_surface = ev_pixbuf_cache_get_surface (view->pixbuf_cache, page);
+		page_surface = ev_pixbuf_cache_get_surface (view->priv->pixbuf_cache, page);
 
 		if (!page_surface) {
 			if (page == current_page)
@@ -4420,11 +4426,11 @@ draw_one_page (EvView       *view,
 		
 		/* Get the selection pixbuf iff we have something to draw */
 		if (find_selection_for_page (view, page) &&
-		    view->selection_mode == EV_VIEW_SELECTION_TEXT) {
+		    view->priv->selection_mode == EV_VIEW_SELECTION_TEXT) {
 			selection_surface =
-				ev_pixbuf_cache_get_selection_surface (view->pixbuf_cache,
+				ev_pixbuf_cache_get_selection_surface (view->priv->pixbuf_cache,
 								       page,
-								       view->scale,
+								       view->priv->scale,
 								       NULL);
 		}
 
@@ -4466,14 +4472,14 @@ ev_view_finalize (GObject *object)
 	clear_selection (view);
 	clear_link_selected (view);
 
-	if (view->synctex_result) {
-		g_free (view->synctex_result);
-		view->synctex_result = NULL;
+	if (view->priv->synctex_result) {
+		g_free (view->priv->synctex_result);
+		view->priv->synctex_result = NULL;
 	}
 
-	if (view->image_dnd_info.image)
-		g_object_unref (view->image_dnd_info.image);
-	view->image_dnd_info.image = NULL;
+	if (view->priv->image_dnd_info.image)
+		g_object_unref (view->priv->image_dnd_info.image);
+	view->priv->image_dnd_info.image = NULL;
 
 	G_OBJECT_CLASS (ev_view_parent_class)->finalize (object);
 }
@@ -4483,54 +4489,54 @@ ev_view_dispose (GObject *object)
 {
 	EvView *view = EV_VIEW (object);
 
-	if (view->model) {
-		g_signal_handlers_disconnect_by_data (view->model, view);
-		g_object_unref (view->model);
-		view->model = NULL;
+	if (view->priv->model) {
+		g_signal_handlers_disconnect_by_data (view->priv->model, view);
+		g_object_unref (view->priv->model);
+		view->priv->model = NULL;
 	}
 
-	if (view->pixbuf_cache) {
-		g_object_unref (view->pixbuf_cache);
-		view->pixbuf_cache = NULL;
+	if (view->priv->pixbuf_cache) {
+		g_object_unref (view->priv->pixbuf_cache);
+		view->priv->pixbuf_cache = NULL;
 	}
 
-	if (view->document) {
-		g_object_unref (view->document);
-		view->document = NULL;
+	if (view->priv->document) {
+		g_object_unref (view->priv->document);
+		view->priv->document = NULL;
 	}
 
-	if (view->page_cache) {
-		g_object_unref (view->page_cache);
-		view->page_cache = NULL;
+	if (view->priv->page_cache) {
+		g_object_unref (view->priv->page_cache);
+		view->priv->page_cache = NULL;
 	}
 
 	ev_view_find_cancel (view);
 
 	ev_view_window_children_free (view);
 
-	if (view->selection_scroll_id) {
-	    g_source_remove (view->selection_scroll_id);
-	    view->selection_scroll_id = 0;
+	if (view->priv->selection_scroll_id) {
+	    g_source_remove (view->priv->selection_scroll_id);
+	    view->priv->selection_scroll_id = 0;
 	}
 
-	if (view->selection_update_id) {
-	    g_source_remove (view->selection_update_id);
-	    view->selection_update_id = 0;
+	if (view->priv->selection_update_id) {
+	    g_source_remove (view->priv->selection_update_id);
+	    view->priv->selection_update_id = 0;
 	}
 
-	if (view->scroll_info.timeout_id) {
-	    g_source_remove (view->scroll_info.timeout_id);
-	    view->scroll_info.timeout_id = 0;
+	if (view->priv->scroll_info.timeout_id) {
+	    g_source_remove (view->priv->scroll_info.timeout_id);
+	    view->priv->scroll_info.timeout_id = 0;
 	}
 
-	if (view->drag_info.drag_timeout_id) {
-		g_source_remove (view->drag_info.drag_timeout_id);
-		view->drag_info.drag_timeout_id = 0;
+	if (view->priv->drag_info.drag_timeout_id) {
+		g_source_remove (view->priv->drag_info.drag_timeout_id);
+		view->priv->drag_info.drag_timeout_id = 0;
 	}
 
-	if (view->drag_info.release_timeout_id) {
-		g_source_remove (view->drag_info.release_timeout_id);
-		view->drag_info.release_timeout_id = 0;
+	if (view->priv->drag_info.release_timeout_id) {
+		g_source_remove (view->priv->drag_info.release_timeout_id);
+		view->priv->drag_info.release_timeout_id = 0;
 	}
 
         gtk_scrollable_set_hadjustment (GTK_SCROLLABLE (view), NULL);
@@ -4549,19 +4555,19 @@ ev_view_get_property (GObject     *object,
 
 	switch (prop_id) {
 	case PROP_IS_LOADING:
-		g_value_set_boolean (value, view->loading);
+		g_value_set_boolean (value, view->priv->loading);
 		break;
 	case PROP_HADJUSTMENT:
-		g_value_set_object (value, view->hadjustment);
+		g_value_set_object (value, view->priv->hadjustment);
 		break;
 	case PROP_VADJUSTMENT:
-		g_value_set_object (value, view->vadjustment);
+		g_value_set_object (value, view->priv->vadjustment);
 		break;
 	case PROP_HSCROLL_POLICY:
-		g_value_set_enum (value, view->hscroll_policy);
+		g_value_set_enum (value, view->priv->hscroll_policy);
 		break;
 	case PROP_VSCROLL_POLICY:
-		g_value_set_enum (value, view->vscroll_policy);
+		g_value_set_enum (value, view->priv->vscroll_policy);
 		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -4590,11 +4596,11 @@ ev_view_set_property (GObject      *object,
 					       (GtkAdjustment *) g_value_get_object (value));
 		break;
 	case PROP_HSCROLL_POLICY:
-		view->hscroll_policy = g_value_get_enum (value);
+		view->priv->hscroll_policy = g_value_get_enum (value);
 		gtk_widget_queue_resize (GTK_WIDGET (view));
 		break;
 	case PROP_VSCROLL_POLICY:
-		view->vscroll_policy = g_value_get_enum (value);
+		view->priv->vscroll_policy = g_value_get_enum (value);
 		gtk_widget_queue_resize (GTK_WIDGET (view));
 		break;
 	default:
@@ -4630,7 +4636,7 @@ ev_view_init_accessibility (EvView *view)
 			atk_registry_set_factory_type (registry,
 						       EV_TYPE_VIEW,
 						       ev_view_accessible_factory_get_type ());
-			view->a11y_enabled = TRUE;
+			view->priv->a11y_enabled = TRUE;
 		}
 		first_time = FALSE;
 	}
@@ -4647,7 +4653,7 @@ static gboolean
 ev_view_is_a11y_enabled (EvView *view)
 {
 	ev_view_init_accessibility (view);
-	return view->a11y_enabled;
+	return view->priv->a11y_enabled;
 }
 
 /* GtkContainer */
@@ -4656,7 +4662,7 @@ ev_view_remove (GtkContainer *container,
 		GtkWidget    *widget)
 {
 	EvView *view = EV_VIEW (container);
-	GList *tmp_list = view->children;
+	GList *tmp_list = view->priv->children;
 	EvViewChild *child;
 
 	while (tmp_list) {
@@ -4665,7 +4671,7 @@ ev_view_remove (GtkContainer *container,
 		if (child->widget == widget) {
 			gtk_widget_unparent (widget);
 
-			view->children = g_list_remove_link (view->children, tmp_list);
+			view->priv->children = g_list_remove_link (view->priv->children, tmp_list);
 			g_list_free_1 (tmp_list);
 			g_slice_free (EvViewChild, child);
 
@@ -4683,7 +4689,7 @@ ev_view_forall (GtkContainer *container,
 		gpointer      callback_data)
 {
 	EvView *view = EV_VIEW (container);
-	GList *tmp_list = view->children;
+	GList *tmp_list = view->priv->children;
 	EvViewChild *child;
 
 	while (tmp_list) {
@@ -4814,6 +4820,8 @@ ev_view_class_init (EvViewClass *class)
 		         G_TYPE_NONE, 0,
 			 G_TYPE_NONE);
 
+        g_type_class_add_private (class, sizeof (EvViewPrivate));
+
 	binding_set = gtk_binding_set_by_class (class);
 
         add_scroll_binding_keypad (binding_set, GDK_KEY_Left,  0, GTK_SCROLL_STEP_BACKWARD, TRUE);
@@ -4854,27 +4862,27 @@ ev_view_init (EvView *view)
 			       GDK_ENTER_NOTIFY_MASK |
 			       GDK_LEAVE_NOTIFY_MASK);
 
-	view->start_page = -1;
-	view->end_page = -1;
-	view->spacing = 5;
-	view->scale = 1.0;
-	view->current_page = 0;
-	view->pressed_button = -1;
-	view->cursor = EV_VIEW_CURSOR_NORMAL;
-	view->drag_info.in_drag = FALSE;
-	view->scroll_info.autoscrolling = FALSE;
-	view->selection_info.selections = NULL;
-	view->selection_info.in_selection = FALSE;
-	view->selection_info.in_drag = FALSE;
-	view->selection_mode = EV_VIEW_SELECTION_TEXT;
-	view->continuous = TRUE;
-	view->dual_page = FALSE;
-	view->dual_even_left = TRUE;
-	view->fullscreen = FALSE;
-	view->sizing_mode = EV_SIZING_FIT_WIDTH;
-	view->pending_scroll = SCROLL_TO_KEEP_POSITION;
-	view->jump_to_find_result = TRUE;
-	view->highlight_find_results = FALSE;
+	view->priv->start_page = -1;
+	view->priv->end_page = -1;
+	view->priv->spacing = 5;
+	view->priv->scale = 1.0;
+	view->priv->current_page = 0;
+	view->priv->pressed_button = -1;
+	view->priv->cursor = EV_VIEW_CURSOR_NORMAL;
+	view->priv->drag_info.in_drag = FALSE;
+	view->priv->scroll_info.autoscrolling = FALSE;
+	view->priv->selection_info.selections = NULL;
+	view->priv->selection_info.in_selection = FALSE;
+	view->priv->selection_info.in_drag = FALSE;
+	view->priv->selection_mode = EV_VIEW_SELECTION_TEXT;
+	view->priv->continuous = TRUE;
+	view->priv->dual_page = FALSE;
+	view->priv->dual_even_left = TRUE;
+	view->priv->fullscreen = FALSE;
+	view->priv->sizing_mode = EV_SIZING_FIT_WIDTH;
+	view->priv->pending_scroll = SCROLL_TO_KEEP_POSITION;
+	view->priv->jump_to_find_result = TRUE;
+	view->priv->highlight_find_results = FALSE;
 }
 
 /*** Callbacks ***/
@@ -4885,8 +4893,8 @@ ev_view_change_page (EvView *view,
 {
 	gint x, y;
 
-	view->current_page = new_page;
-	view->pending_scroll = SCROLL_TO_PAGE_POSITION;
+	view->priv->current_page = new_page;
+	view->priv->pending_scroll = SCROLL_TO_PAGE_POSITION;
 
 	ev_view_set_loading (view, FALSE);
 
@@ -4914,16 +4922,16 @@ ev_view_page_changed_cb (EvDocumentModel *model,
 			 gint             new_page,
 			 EvView          *view)
 {
-	if (!view->document)
+	if (!view->priv->document)
 		return;
 
-	if (view->current_page != new_page) {
+	if (view->priv->current_page != new_page) {
 		ev_view_change_page (view, new_page);
 	} else {
 		gtk_widget_queue_draw (GTK_WIDGET (view));
 	}
 
-	view->find_result = 0;
+	view->priv->find_result = 0;
 }
 
 static void
@@ -4939,23 +4947,23 @@ on_adjustment_value_changed (GtkAdjustment *adjustment,
 	if (!gtk_widget_get_realized (widget))
 		return;
 
-	if (view->hadjustment) {
-		value = (gint) gtk_adjustment_get_value (view->hadjustment);
-		dx = view->scroll_x - value;
-		view->scroll_x = value;
+	if (view->priv->hadjustment) {
+		value = (gint) gtk_adjustment_get_value (view->priv->hadjustment);
+		dx = view->priv->scroll_x - value;
+		view->priv->scroll_x = value;
 	} else {
-		view->scroll_x = 0;
+		view->priv->scroll_x = 0;
 	}
 
-	if (view->vadjustment) {
-		value = (gint) gtk_adjustment_get_value (view->vadjustment);
-		dy = view->scroll_y - value;
-		view->scroll_y = value;
+	if (view->priv->vadjustment) {
+		value = (gint) gtk_adjustment_get_value (view->priv->vadjustment);
+		dy = view->priv->scroll_y - value;
+		view->priv->scroll_y = value;
 	} else {
-		view->scroll_y = 0;
+		view->priv->scroll_y = 0;
 	}
 
-	for (l = view->children; l && l->data; l = g_list_next (l)) {
+	for (l = view->priv->children; l && l->data; l = g_list_next (l)) {
 		EvViewChild *child = (EvViewChild *)l->data;
 
 		child->x += dx;
@@ -4964,7 +4972,7 @@ on_adjustment_value_changed (GtkAdjustment *adjustment,
 			gtk_widget_queue_resize (widget);
 	}
 
-	for (l = view->window_children; l && l->data; l = g_list_next (l)) {
+	for (l = view->priv->window_children; l && l->data; l = g_list_next (l)) {
 		EvViewWindowChild *child;
 
 		child = (EvViewWindowChild *)l->data;
@@ -4972,7 +4980,7 @@ on_adjustment_value_changed (GtkAdjustment *adjustment,
 		ev_view_window_child_move (view, child, child->x + dx, child->y + dy);
 	}
 
-	if (view->pending_resize) {
+	if (view->priv->pending_resize) {
 		gtk_widget_queue_draw (widget);
 	} else {
 		gdk_window_scroll (gtk_widget_get_window (widget), dx, dy);
@@ -4981,7 +4989,7 @@ on_adjustment_value_changed (GtkAdjustment *adjustment,
 	ev_document_misc_get_pointer_position (widget, &x, &y);
 	ev_view_handle_cursor_over_xy (view, x, y);
 
-	if (view->document)
+	if (view->priv->document)
 		view_update_range_and_current_page (view);
 }
 
@@ -5000,33 +5008,33 @@ setup_caches (EvView *view)
 {
 	gboolean inverted_colors;
 
-	view->height_to_page_cache = ev_view_get_height_to_page_cache (view);
-	view->pixbuf_cache = ev_pixbuf_cache_new (GTK_WIDGET (view), view->model, view->pixbuf_cache_size);
-	view->page_cache = ev_page_cache_new (view->document);
+	view->priv->height_to_page_cache = ev_view_get_height_to_page_cache (view);
+	view->priv->pixbuf_cache = ev_pixbuf_cache_new (GTK_WIDGET (view), view->priv->model, view->priv->pixbuf_cache_size);
+	view->priv->page_cache = ev_page_cache_new (view->priv->document);
 	if (ev_view_is_a11y_enabled (view)) {
-		EvJobPageDataFlags flags = ev_page_cache_get_flags (view->page_cache);
+		EvJobPageDataFlags flags = ev_page_cache_get_flags (view->priv->page_cache);
 
-		ev_page_cache_set_flags (view->page_cache,
+		ev_page_cache_set_flags (view->priv->page_cache,
 					 flags |
 					 EV_PAGE_DATA_INCLUDE_TEXT_LAYOUT |
 					 EV_PAGE_DATA_INCLUDE_TEXT);
 	}
-	inverted_colors = ev_document_model_get_inverted_colors (view->model);
-	ev_pixbuf_cache_set_inverted_colors (view->pixbuf_cache, inverted_colors);
-	g_signal_connect (view->pixbuf_cache, "job-finished", G_CALLBACK (job_finished_cb), view);
+	inverted_colors = ev_document_model_get_inverted_colors (view->priv->model);
+	ev_pixbuf_cache_set_inverted_colors (view->priv->pixbuf_cache, inverted_colors);
+	g_signal_connect (view->priv->pixbuf_cache, "job-finished", G_CALLBACK (job_finished_cb), view);
 }
 
 static void
 clear_caches (EvView *view)
 {
-	if (view->pixbuf_cache) {
-		g_object_unref (view->pixbuf_cache);
-		view->pixbuf_cache = NULL;
+	if (view->priv->pixbuf_cache) {
+		g_object_unref (view->priv->pixbuf_cache);
+		view->priv->pixbuf_cache = NULL;
 	}
 
-	if (view->page_cache) {
-		g_object_unref (view->page_cache);
-		view->page_cache = NULL;
+	if (view->priv->page_cache) {
+		g_object_unref (view->priv->page_cache);
+		view->priv->page_cache = NULL;
 	}
 }
 
@@ -5047,29 +5055,29 @@ void
 ev_view_set_page_cache_size (EvView *view,
 			     gsize   cache_size)
 {
-	if (view->pixbuf_cache_size == cache_size)
+	if (view->priv->pixbuf_cache_size == cache_size)
 		return;
 
-	view->pixbuf_cache_size = cache_size;
-	if (view->pixbuf_cache)
-		ev_pixbuf_cache_set_max_size (view->pixbuf_cache, cache_size);
+	view->priv->pixbuf_cache_size = cache_size;
+	if (view->priv->pixbuf_cache)
+		ev_pixbuf_cache_set_max_size (view->priv->pixbuf_cache, cache_size);
 }
 
 void
 ev_view_set_loading (EvView 	  *view,
 		     gboolean      loading)
 {
-	if (view->loading == loading)
+	if (view->priv->loading == loading)
 		return;
 
-	view->loading = loading;
+	view->priv->loading = loading;
 	g_object_notify (G_OBJECT (view), "is-loading");
 }
 
 gboolean
 ev_view_is_loading (EvView *view)
 {
-	return view->loading;
+	return view->priv->loading;
 }
 
 static gboolean
@@ -5079,13 +5087,13 @@ ev_view_autoscroll_cb (EvView *view)
 
 	/* If the user stops autoscrolling, autoscrolling will be
 	 * set to false but the timeout will continue; stop the timeout: */
-	if (!view->scroll_info.autoscrolling) {
-		view->scroll_info.timeout_id = 0;
+	if (!view->priv->scroll_info.autoscrolling) {
+		view->priv->scroll_info.timeout_id = 0;
 		return FALSE;
 	}
 	
-	if (view->scroll_info.last_y > view->scroll_info.start_y && 
-		(view->scroll_info.last_y < view->scroll_info.start_y))
+	if (view->priv->scroll_info.last_y > view->priv->scroll_info.start_y && 
+		(view->priv->scroll_info.last_y < view->priv->scroll_info.start_y))
 		return TRUE; 
 
 	/* Replace 100 with your speed of choice: The lower the faster.
@@ -5093,16 +5101,16 @@ ev_view_autoscroll_cb (EvView *view)
 	 * 	based on the distance of the starting point from the mouse
 	 * (All also effected by the timeout interval of this callback) */
 
-	if (view->scroll_info.start_y > view->scroll_info.last_y)
-		speed = -pow ((((gdouble)view->scroll_info.start_y - view->scroll_info.last_y) / 100), 3);
+	if (view->priv->scroll_info.start_y > view->priv->scroll_info.last_y)
+		speed = -pow ((((gdouble)view->priv->scroll_info.start_y - view->priv->scroll_info.last_y) / 100), 3);
 	else
-		speed = pow ((((gdouble)view->scroll_info.last_y - view->scroll_info.start_y) / 100), 3);
+		speed = pow ((((gdouble)view->priv->scroll_info.last_y - view->priv->scroll_info.start_y) / 100), 3);
 	
-	value = gtk_adjustment_get_value (view->vadjustment);
+	value = gtk_adjustment_get_value (view->priv->vadjustment);
 	value = CLAMP (value + speed, 0,
-		       gtk_adjustment_get_upper (view->vadjustment) -
-		       gtk_adjustment_get_page_size (view->vadjustment));
-	gtk_adjustment_set_value (view->vadjustment, value);
+		       gtk_adjustment_get_upper (view->priv->vadjustment) -
+		       gtk_adjustment_get_page_size (view->priv->vadjustment));
+	gtk_adjustment_set_value (view->priv->vadjustment, value);
 	
 	return TRUE;
 
@@ -5115,11 +5123,11 @@ ev_view_autoscroll_start (EvView *view)
 	
 	g_return_if_fail (EV_IS_VIEW (view));
 
-	if (view->scroll_info.autoscrolling)
+	if (view->priv->scroll_info.autoscrolling)
 		return;
 	
-	view->scroll_info.autoscrolling = TRUE;
-	view->scroll_info.timeout_id =
+	view->priv->scroll_info.autoscrolling = TRUE;
+	view->priv->scroll_info.timeout_id =
 		g_timeout_add (20, (GSourceFunc)ev_view_autoscroll_cb,
 			       view);
 	
@@ -5134,13 +5142,13 @@ ev_view_autoscroll_stop (EvView *view)
 	
 	g_return_if_fail (EV_IS_VIEW (view));
 
-	if (!view->scroll_info.autoscrolling)
+	if (!view->priv->scroll_info.autoscrolling)
 		return;
 
-	view->scroll_info.autoscrolling = FALSE;
-	if (view->scroll_info.timeout_id) {
-		g_source_remove (view->scroll_info.timeout_id);
-		view->scroll_info.timeout_id = 0;
+	view->priv->scroll_info.autoscrolling = FALSE;
+	if (view->priv->scroll_info.timeout_id) {
+		g_source_remove (view->priv->scroll_info.timeout_id);
+		view->priv->scroll_info.timeout_id = 0;
 	}
 
 	ev_document_misc_get_pointer_position (GTK_WIDGET (view), &x, &y);
@@ -5154,30 +5162,30 @@ ev_view_document_changed_cb (EvDocumentModel *model,
 {
 	EvDocument *document = ev_document_model_get_document (model);
 
-	if (document != view->document) {
+	if (document != view->priv->document) {
 		gint current_page;
 
 		ev_view_remove_all (view);
 		clear_caches (view);
 
-		if (view->document) {
-			g_object_unref (view->document);
+		if (view->priv->document) {
+			g_object_unref (view->priv->document);
                 }
 
-		view->document = document;
-		view->find_result = 0;
+		view->priv->document = document;
+		view->priv->find_result = 0;
 
-		if (view->document) {
+		if (view->priv->document) {
 			ev_view_set_loading (view, FALSE);
-			g_object_ref (view->document);
+			g_object_ref (view->priv->document);
 			setup_caches (view);
                 }
 
 		current_page = ev_document_model_get_page (model);
-		if (view->current_page != current_page) {
+		if (view->priv->current_page != current_page) {
 			ev_view_change_page (view, current_page);
 		} else {
-			view->pending_scroll = SCROLL_TO_KEEP_POSITION;
+			view->priv->pending_scroll = SCROLL_TO_KEEP_POSITION;
 			gtk_widget_queue_resize (GTK_WIDGET (view));
 		}
 	}
@@ -5190,12 +5198,12 @@ ev_view_rotation_changed_cb (EvDocumentModel *model,
 {
 	gint rotation = ev_document_model_get_rotation (model);
 
-	view->rotation = rotation;
+	view->priv->rotation = rotation;
 
-	if (view->pixbuf_cache) {
-		ev_pixbuf_cache_clear (view->pixbuf_cache);
-		if (!ev_document_is_page_size_uniform (view->document))
-			view->pending_scroll = SCROLL_TO_PAGE_POSITION;
+	if (view->priv->pixbuf_cache) {
+		ev_pixbuf_cache_clear (view->priv->pixbuf_cache);
+		if (!ev_document_is_page_size_uniform (view->priv->document))
+			view->priv->pending_scroll = SCROLL_TO_PAGE_POSITION;
 		gtk_widget_queue_resize (GTK_WIDGET (view));
 	}
 
@@ -5210,11 +5218,11 @@ ev_view_inverted_colors_changed_cb (EvDocumentModel *model,
 				    GParamSpec      *pspec,
 				    EvView          *view)
 {
-	if (view->pixbuf_cache) {
+	if (view->priv->pixbuf_cache) {
 		gboolean inverted_colors;
 
 		inverted_colors = ev_document_model_get_inverted_colors (model);
-		ev_pixbuf_cache_set_inverted_colors (view->pixbuf_cache, inverted_colors);
+		ev_pixbuf_cache_set_inverted_colors (view->priv->pixbuf_cache, inverted_colors);
 		gtk_widget_queue_draw (GTK_WIDGET (view));
 	}
 }
@@ -5226,7 +5234,7 @@ ev_view_sizing_mode_changed_cb (EvDocumentModel *model,
 {
 	EvSizingMode mode = ev_document_model_get_sizing_mode (model);
 
-	view->sizing_mode = mode;
+	view->priv->sizing_mode = mode;
 	if (mode != EV_SIZING_FREE)
 		gtk_widget_queue_resize (GTK_WIDGET (view));
 }
@@ -5239,13 +5247,13 @@ ev_view_scale_changed_cb (EvDocumentModel *model,
 {
 	gdouble scale = ev_document_model_get_scale (model);
 
-	if (ABS (view->scale - scale) < EPSILON)
+	if (ABS (view->priv->scale - scale) < EPSILON)
 		return;
 
-	view->scale = scale;
+	view->priv->scale = scale;
 
-	view->pending_resize = TRUE;
-	if (view->sizing_mode == EV_SIZING_FREE)
+	view->priv->pending_resize = TRUE;
+	if (view->priv->sizing_mode == EV_SIZING_FREE)
 		gtk_widget_queue_resize (GTK_WIDGET (view));
 }
 
@@ -5256,8 +5264,8 @@ ev_view_continuous_changed_cb (EvDocumentModel *model,
 {
 	gboolean continuous = ev_document_model_get_continuous (model);
 
-	view->continuous = continuous;
-	view->pending_scroll = SCROLL_TO_PAGE_POSITION;
+	view->priv->continuous = continuous;
+	view->priv->pending_scroll = SCROLL_TO_PAGE_POSITION;
 	gtk_widget_queue_resize (GTK_WIDGET (view));
 }
 
@@ -5268,8 +5276,8 @@ ev_view_dual_page_changed_cb (EvDocumentModel *model,
 {
 	gboolean dual_page = ev_document_model_get_dual_page (model);
 
-	view->dual_page = dual_page || ev_document_model_get_dual_page_odd_pages_left (model);
-	view->pending_scroll = SCROLL_TO_PAGE_POSITION;
+	view->priv->dual_page = dual_page || ev_document_model_get_dual_page_odd_pages_left (model);
+	view->priv->pending_scroll = SCROLL_TO_PAGE_POSITION;
 	/* FIXME: if we're keeping the pixbuf cache around, we should extend the
 	 * preload_cache_size to be 2 if dual_page is set.
 	 */
@@ -5283,10 +5291,10 @@ ev_view_dual_odd_left_changed_cb (EvDocumentModel *model,
 {
 	gboolean dual_odd_left = ev_document_model_get_dual_page_odd_pages_left (model);
 
-	view->dual_page = dual_odd_left || ev_document_model_get_dual_page (model);
-	view->dual_even_left = !dual_odd_left;
+	view->priv->dual_page = dual_odd_left || ev_document_model_get_dual_page (model);
+	view->priv->dual_even_left = !dual_odd_left;
 
-	view->pending_scroll = SCROLL_TO_PAGE_POSITION;
+	view->priv->pending_scroll = SCROLL_TO_PAGE_POSITION;
 	gtk_widget_queue_resize (GTK_WIDGET (view));
 }
 
@@ -5297,7 +5305,7 @@ ev_view_fullscreen_changed_cb (EvDocumentModel *model,
 {
 	gboolean fullscreen = ev_document_model_get_fullscreen (model);
 
-	view->fullscreen = fullscreen;
+	view->priv->fullscreen = fullscreen;
 	gtk_widget_queue_resize (GTK_WIDGET (view));
 }
 
@@ -5308,52 +5316,52 @@ ev_view_set_model (EvView          *view,
 	g_return_if_fail (EV_IS_VIEW (view));
 	g_return_if_fail (EV_IS_DOCUMENT_MODEL (model));
 
-	if (model == view->model)
+	if (model == view->priv->model)
 		return;
 
-	if (view->model) {
-		g_signal_handlers_disconnect_by_data (view->model, view);
-		g_object_unref (view->model);
+	if (view->priv->model) {
+		g_signal_handlers_disconnect_by_data (view->priv->model, view);
+		g_object_unref (view->priv->model);
 	}
-	view->model = g_object_ref (model);
+	view->priv->model = g_object_ref (model);
 
 	/* Initialize view from model */
-	view->rotation = ev_document_model_get_rotation (view->model);
-	view->sizing_mode = ev_document_model_get_sizing_mode (view->model);
-	view->scale = ev_document_model_get_scale (view->model);
-	view->continuous = ev_document_model_get_continuous (view->model);
-	view->dual_page = ev_document_model_get_dual_page (view->model);
-	view->fullscreen = ev_document_model_get_fullscreen (view->model);
-	ev_view_document_changed_cb (view->model, NULL, view);
-
-	g_signal_connect (view->model, "notify::document",
+	view->priv->rotation = ev_document_model_get_rotation (view->priv->model);
+	view->priv->sizing_mode = ev_document_model_get_sizing_mode (view->priv->model);
+	view->priv->scale = ev_document_model_get_scale (view->priv->model);
+	view->priv->continuous = ev_document_model_get_continuous (view->priv->model);
+	view->priv->dual_page = ev_document_model_get_dual_page (view->priv->model);
+	view->priv->fullscreen = ev_document_model_get_fullscreen (view->priv->model);
+	ev_view_document_changed_cb (view->priv->model, NULL, view);
+
+	g_signal_connect (view->priv->model, "notify::document",
 			  G_CALLBACK (ev_view_document_changed_cb),
 			  view);
-	g_signal_connect (view->model, "notify::rotation",
+	g_signal_connect (view->priv->model, "notify::rotation",
 			  G_CALLBACK (ev_view_rotation_changed_cb),
 			  view);
-	g_signal_connect (view->model, "notify::inverted-colors",
+	g_signal_connect (view->priv->model, "notify::inverted-colors",
 			  G_CALLBACK (ev_view_inverted_colors_changed_cb),
 			  view);
-	g_signal_connect (view->model, "notify::sizing-mode",
+	g_signal_connect (view->priv->model, "notify::sizing-mode",
 			  G_CALLBACK (ev_view_sizing_mode_changed_cb),
 			  view);
-	g_signal_connect (view->model, "notify::scale",
+	g_signal_connect (view->priv->model, "notify::scale",
 			  G_CALLBACK (ev_view_scale_changed_cb),
 			  view);
-	g_signal_connect (view->model, "notify::continuous",
+	g_signal_connect (view->priv->model, "notify::continuous",
 			  G_CALLBACK (ev_view_continuous_changed_cb),
 			  view);
-	g_signal_connect (view->model, "notify::dual-page",
+	g_signal_connect (view->priv->model, "notify::dual-page",
 			  G_CALLBACK (ev_view_dual_page_changed_cb),
 			  view);
-	g_signal_connect (view->model, "notify::dual-odd-left",
+	g_signal_connect (view->priv->model, "notify::dual-odd-left",
 			  G_CALLBACK (ev_view_dual_odd_left_changed_cb),
 			  view);
-	g_signal_connect (view->model, "notify::fullscreen",
+	g_signal_connect (view->priv->model, "notify::fullscreen",
 			  G_CALLBACK (ev_view_fullscreen_changed_cb),
 			  view);
-	g_signal_connect (view->model, "page-changed",
+	g_signal_connect (view->priv->model, "page-changed",
 			  G_CALLBACK (ev_view_page_changed_cb),
 			  view);
 }
@@ -5363,17 +5371,17 @@ ev_view_reload_page (EvView         *view,
 		     gint            page,
 		     cairo_region_t *region)
 {
-	ev_pixbuf_cache_reload_page (view->pixbuf_cache,
+	ev_pixbuf_cache_reload_page (view->priv->pixbuf_cache,
 				     region,
 				     page,
-				     view->rotation,
-				     view->scale);
+				     view->priv->rotation,
+				     view->priv->scale);
 }
 
 void
 ev_view_reload (EvView *view)
 {
-	ev_pixbuf_cache_clear (view->pixbuf_cache);
+	ev_pixbuf_cache_clear (view->priv->pixbuf_cache);
 	view_update_range_and_current_page (view);
 }
 
@@ -5381,16 +5389,16 @@ ev_view_reload (EvView *view)
 static gboolean
 ev_view_can_zoom (EvView *view, gdouble factor)
 {
-	gdouble scale = view->scale * factor;
+	gdouble scale = view->priv->scale * factor;
 
 	if (factor == 1.0)
 		return TRUE;
 
 	else if (factor < 1.0)
-		return ev_document_model_get_min_scale (view->model) <= scale;
+		return ev_document_model_get_min_scale (view->priv->model) <= scale;
 
 	else
-		return scale <= ev_document_model_get_max_scale (view->model);
+		return scale <= ev_document_model_get_max_scale (view->priv->model);
 }
 
 gboolean
@@ -5410,11 +5418,11 @@ ev_view_zoom (EvView *view, gdouble factor)
 {
 	gdouble scale;
 
-	g_return_if_fail (view->sizing_mode == EV_SIZING_FREE);
+	g_return_if_fail (view->priv->sizing_mode == EV_SIZING_FREE);
 
-	view->pending_scroll = SCROLL_TO_CENTER;
-	scale = ev_document_model_get_scale (view->model) * factor;
-	ev_document_model_set_scale (view->model, scale);
+	view->priv->pending_scroll = SCROLL_TO_CENTER;
+	scale = ev_document_model_get_scale (view->priv->model) * factor;
+	ev_document_model_set_scale (view->priv->model, scale);
 }
 
 void
@@ -5472,8 +5480,8 @@ ev_view_zoom_for_size_continuous_and_dual_page (EvView *view,
 	gdouble scale;
 	gint sb_size;
 
-	ev_document_get_max_page_size (view->document, &doc_width, &doc_height);
-	if (view->rotation == 90 || view->rotation == 270) {
+	ev_document_get_max_page_size (view->priv->document, &doc_width, &doc_height);
+	if (view->priv->rotation == 90 || view->priv->rotation == 270) {
 		gdouble tmp;
 
 		tmp = doc_width;
@@ -5484,19 +5492,19 @@ ev_view_zoom_for_size_continuous_and_dual_page (EvView *view,
 	compute_border (view, doc_width, doc_height, &border);
 
 	doc_width *= 2;
-	width -= (2 * (border.left + border.right) + 3 * view->spacing);
-	height -= (border.top + border.bottom + 2 * view->spacing - 1);
+	width -= (2 * (border.left + border.right) + 3 * view->priv->spacing);
+	height -= (border.top + border.bottom + 2 * view->priv->spacing - 1);
 
 	sb_size = ev_view_get_scrollbar_size (view, GTK_ORIENTATION_VERTICAL);
 
-	if (view->sizing_mode == EV_SIZING_FIT_WIDTH) {
+	if (view->priv->sizing_mode == EV_SIZING_FIT_WIDTH) {
 		scale = zoom_for_size_fit_width (doc_width, doc_height, width - sb_size, height);
-	} else if (view->sizing_mode == EV_SIZING_BEST_FIT)
+	} else if (view->priv->sizing_mode == EV_SIZING_BEST_FIT)
 		scale = zoom_for_size_best_fit (doc_width, doc_height, width - sb_size, height);
 	else
 		g_assert_not_reached ();
 
-	ev_document_model_set_scale (view->model, scale);
+	ev_document_model_set_scale (view->priv->model, scale);
 }
 
 static void
@@ -5509,8 +5517,8 @@ ev_view_zoom_for_size_continuous (EvView *view,
 	gdouble scale;
 	gint sb_size;
 
-	ev_document_get_max_page_size (view->document, &doc_width, &doc_height);
-	if (view->rotation == 90 || view->rotation == 270) {
+	ev_document_get_max_page_size (view->priv->document, &doc_width, &doc_height);
+	if (view->priv->rotation == 90 || view->priv->rotation == 270) {
 		gdouble tmp;
 
 		tmp = doc_width;
@@ -5520,19 +5528,19 @@ ev_view_zoom_for_size_continuous (EvView *view,
 
 	compute_border (view, doc_width, doc_height, &border);
 
-	width -= (border.left + border.right + 2 * view->spacing);
-	height -= (border.top + border.bottom + 2 * view->spacing - 1);
+	width -= (border.left + border.right + 2 * view->priv->spacing);
+	height -= (border.top + border.bottom + 2 * view->priv->spacing - 1);
 
 	sb_size = ev_view_get_scrollbar_size (view, GTK_ORIENTATION_VERTICAL);
 
-	if (view->sizing_mode == EV_SIZING_FIT_WIDTH) {
+	if (view->priv->sizing_mode == EV_SIZING_FIT_WIDTH) {
 		scale = zoom_for_size_fit_width (doc_width, doc_height, width - sb_size, height);
-	} else if (view->sizing_mode == EV_SIZING_BEST_FIT)
+	} else if (view->priv->sizing_mode == EV_SIZING_BEST_FIT)
 		scale = zoom_for_size_best_fit (doc_width, doc_height, width - sb_size, height);
 	else
 		g_assert_not_reached ();
 
-	ev_document_model_set_scale (view->model, scale);
+	ev_document_model_set_scale (view->priv->model, scale);
 }
 
 static void
@@ -5545,11 +5553,11 @@ ev_view_zoom_for_size_dual_page (EvView *view,
 	gdouble scale;
 	gint other_page;
 
-	other_page = view->current_page ^ 1;
+	other_page = view->priv->current_page ^ 1;
 
 	/* Find the largest of the two. */
-	get_doc_page_size (view, view->current_page, &doc_width, &doc_height);
-	if (other_page < ev_document_get_n_pages (view->document)) {
+	get_doc_page_size (view, view->priv->current_page, &doc_width, &doc_height);
+	if (other_page < ev_document_get_n_pages (view->priv->document)) {
 		gdouble width_2, height_2;
 
 		get_doc_page_size (view, other_page, &width_2, &height_2);
@@ -5561,20 +5569,20 @@ ev_view_zoom_for_size_dual_page (EvView *view,
 	compute_border (view, width, height, &border);
 
 	doc_width = doc_width * 2;
-	width -= ((border.left + border.right)* 2 + 3 * view->spacing);
-	height -= (border.top + border.bottom + 2 * view->spacing);
+	width -= ((border.left + border.right)* 2 + 3 * view->priv->spacing);
+	height -= (border.top + border.bottom + 2 * view->priv->spacing);
 
-	if (view->sizing_mode == EV_SIZING_FIT_WIDTH) {
+	if (view->priv->sizing_mode == EV_SIZING_FIT_WIDTH) {
 		gint sb_size;
 
 		sb_size = ev_view_get_scrollbar_size (view, GTK_ORIENTATION_VERTICAL);
 		scale = zoom_for_size_fit_width (doc_width, doc_height, width - sb_size, height);
-	} else if (view->sizing_mode == EV_SIZING_BEST_FIT)
+	} else if (view->priv->sizing_mode == EV_SIZING_BEST_FIT)
 		scale = zoom_for_size_best_fit (doc_width, doc_height, width, height);
 	else
 		g_assert_not_reached ();
 
-	ev_document_model_set_scale (view->model, scale);
+	ev_document_model_set_scale (view->priv->model, scale);
 }
 
 static void
@@ -5586,25 +5594,25 @@ ev_view_zoom_for_size_single_page (EvView *view,
 	GtkBorder border;
 	gdouble scale;
 
-	get_doc_page_size (view, view->current_page, &doc_width, &doc_height);
+	get_doc_page_size (view, view->priv->current_page, &doc_width, &doc_height);
 
 	/* Get an approximate border */
 	compute_border (view, width, height, &border);
 
-	width -= (border.left + border.right + 2 * view->spacing);
-	height -= (border.top + border.bottom + 2 * view->spacing);
+	width -= (border.left + border.right + 2 * view->priv->spacing);
+	height -= (border.top + border.bottom + 2 * view->priv->spacing);
 
-	if (view->sizing_mode == EV_SIZING_FIT_WIDTH) {
+	if (view->priv->sizing_mode == EV_SIZING_FIT_WIDTH) {
 		gint sb_size;
 
 		sb_size = ev_view_get_scrollbar_size (view, GTK_ORIENTATION_VERTICAL);
 		scale = zoom_for_size_fit_width (doc_width, doc_height, width - sb_size, height);
-	} else if (view->sizing_mode == EV_SIZING_BEST_FIT)
+	} else if (view->priv->sizing_mode == EV_SIZING_BEST_FIT)
 		scale = zoom_for_size_best_fit (doc_width, doc_height, width, height);
 	else
 		g_assert_not_reached ();
 
-	ev_document_model_set_scale (view->model, scale);
+	ev_document_model_set_scale (view->priv->model, scale);
 }
 
 static void
@@ -5613,19 +5621,19 @@ ev_view_zoom_for_size (EvView *view,
 		       int     height)
 {
 	g_return_if_fail (EV_IS_VIEW (view));
-	g_return_if_fail (view->sizing_mode == EV_SIZING_FIT_WIDTH ||
-			  view->sizing_mode == EV_SIZING_BEST_FIT);
+	g_return_if_fail (view->priv->sizing_mode == EV_SIZING_FIT_WIDTH ||
+			  view->priv->sizing_mode == EV_SIZING_BEST_FIT);
 	g_return_if_fail (width >= 0);
 	g_return_if_fail (height >= 0);
 
-	if (view->document == NULL)
+	if (view->priv->document == NULL)
 		return;
 
-	if (view->continuous && view->dual_page)
+	if (view->priv->continuous && view->priv->dual_page)
 		ev_view_zoom_for_size_continuous_and_dual_page (view, width, height);
-	else if (view->continuous)
+	else if (view->priv->continuous)
 		ev_view_zoom_for_size_continuous (view, width, height);
-	else if (view->dual_page)
+	else if (view->priv->dual_page)
 		ev_view_zoom_for_size_dual_page (view, width, height);
 	else
 		ev_view_zoom_for_size_single_page (view, width, height);
@@ -5635,31 +5643,31 @@ ev_view_zoom_for_size (EvView *view,
 static gint
 ev_view_find_get_n_results (EvView *view, gint page)
 {
-	return view->find_pages ? g_list_length (view->find_pages[page]) : 0;
+	return view->priv->find_pages ? g_list_length (view->priv->find_pages[page]) : 0;
 }
 
 static EvRectangle *
 ev_view_find_get_result (EvView *view, gint page, gint result)
 {
-	return view->find_pages ? (EvRectangle *) g_list_nth_data (view->find_pages[page], result) : NULL;
+	return view->priv->find_pages ? (EvRectangle *) g_list_nth_data (view->priv->find_pages[page], result) : NULL;
 }
 
 static void
 jump_to_find_result (EvView *view)
 {
 	gint n_results;
-	gint page = view->current_page;
+	gint page = view->priv->current_page;
 
 	n_results = ev_view_find_get_n_results (view, page);
 
-	if (n_results > 0 && view->find_result < n_results) {
+	if (n_results > 0 && view->priv->find_result < n_results) {
 		EvRectangle *rect;
 		GdkRectangle view_rect;
 
-		rect = ev_view_find_get_result (view, page, view->find_result);
+		rect = ev_view_find_get_result (view, page, view->priv->find_result);
 		doc_rect_to_view_rect (view, page, rect, &view_rect);
 		ensure_rectangle_is_visible (view, &view_rect);
-		view->jump_to_find_result = FALSE;
+		view->priv->jump_to_find_result = FALSE;
 	}
 }
 
@@ -5678,15 +5686,15 @@ jump_to_find_page (EvView *view, EvViewFindDirection direction, gint shift)
 {
 	int n_pages, i;
 
-	n_pages = ev_document_get_n_pages (view->document);
+	n_pages = ev_document_get_n_pages (view->priv->document);
 
 	for (i = 0; i < n_pages; i++) {
 		int page;
 		
 		if (direction == EV_VIEW_FIND_NEXT)
-			page = view->current_page + i;
+			page = view->priv->current_page + i;
 		else
-			page = view->current_page - i;		
+			page = view->priv->current_page - i;		
 		page += shift;
 		
 		if (page >= n_pages) {
@@ -5695,7 +5703,7 @@ jump_to_find_page (EvView *view, EvViewFindDirection direction, gint shift)
 			page = page + n_pages;
 
 		if (ev_view_find_get_n_results (view, page) > 0) {
-			ev_document_model_set_page (view->model, page);
+			ev_document_model_set_page (view->priv->model, page);
 			break;
 		}
 	}
@@ -5710,11 +5718,11 @@ find_job_updated_cb (EvJobFind *job, gint page, EvView *view)
 void
 ev_view_find_started (EvView *view, EvJobFind *job)
 {
-	if (view->find_job == job)
+	if (view->priv->find_job == job)
 		return;
 
 	ev_view_find_cancel (view);
-	view->find_job = g_object_ref (job);
+	view->priv->find_job = g_object_ref (job);
 
 	g_signal_connect (job, "updated", G_CALLBACK (find_job_updated_cb), view);
 }
@@ -5722,14 +5730,14 @@ ev_view_find_started (EvView *view, EvJobFind *job)
 void
 ev_view_find_changed (EvView *view, GList **results, gint page)
 {
-	view->find_pages = results;
+	view->priv->find_pages = results;
 	
-	if (view->jump_to_find_result == TRUE) {
+	if (view->priv->jump_to_find_result == TRUE) {
 		jump_to_find_page (view, EV_VIEW_FIND_NEXT, 0);
 		jump_to_find_result (view);
 	}
 
-	if (view->current_page == page)
+	if (view->priv->current_page == page)
 		gtk_widget_queue_draw (GTK_WIDGET (view));
 }
 
@@ -5738,11 +5746,11 @@ ev_view_find_next (EvView *view)
 {
 	gint n_results;
 
-	n_results = ev_view_find_get_n_results (view, view->current_page);
-	view->find_result++;
+	n_results = ev_view_find_get_n_results (view, view->priv->current_page);
+	view->priv->find_result++;
 
-	if (view->find_result >= n_results) {
-		view->find_result = 0;
+	if (view->priv->find_result >= n_results) {
+		view->priv->find_result = 0;
 		jump_to_find_page (view, EV_VIEW_FIND_NEXT, 1);
 		jump_to_find_result (view);
 	} else {
@@ -5754,11 +5762,11 @@ ev_view_find_next (EvView *view)
 void
 ev_view_find_previous (EvView *view)
 {
-	view->find_result--;
+	view->priv->find_result--;
 
-	if (view->find_result < 0) {
+	if (view->priv->find_result < 0) {
 		jump_to_find_page (view, EV_VIEW_FIND_PREV, -1);
-		view->find_result = MAX (0, ev_view_find_get_n_results (view, view->current_page) - 1);
+		view->priv->find_result = MAX (0, ev_view_find_get_n_results (view, view->priv->current_page) - 1);
 		jump_to_find_result (view);
 	} else {
 		jump_to_find_result (view);
@@ -5770,28 +5778,28 @@ void
 ev_view_find_search_changed (EvView *view)
 {
 	/* search string has changed, focus on new search result */
-	view->jump_to_find_result = TRUE;
+	view->priv->jump_to_find_result = TRUE;
 	ev_view_find_cancel (view);
 }
 
 void
 ev_view_find_set_highlight_search (EvView *view, gboolean value)
 {
-	view->highlight_find_results = value;
+	view->priv->highlight_find_results = value;
 	gtk_widget_queue_draw (GTK_WIDGET (view));
 }
 
 void
 ev_view_find_cancel (EvView *view)
 {
-	view->find_pages = NULL;
+	view->priv->find_pages = NULL;
 
-	if (!view->find_job)
+	if (!view->priv->find_job)
 		return;
 
-	g_signal_handlers_disconnect_by_func (view->find_job, find_job_updated_cb, view);
-	g_object_unref (view->find_job);
-	view->find_job = NULL;
+	g_signal_handlers_disconnect_by_func (view->priv->find_job, find_job_updated_cb, view);
+	g_object_unref (view->priv->find_job);
+	view->priv->find_job = NULL;
 }
 
 /*** Synctex ***/
@@ -5803,19 +5811,19 @@ ev_view_highlight_forward_search (EvView       *view,
 	gint         page;
 	GdkRectangle view_rect;
 
-	if (!ev_document_has_synctex (view->document))
+	if (!ev_document_has_synctex (view->priv->document))
 		return;
 
-	mapping = ev_document_synctex_forward_search (view->document, link);
+	mapping = ev_document_synctex_forward_search (view->priv->document, link);
 	if (!mapping)
 		return;
 
-	if (view->synctex_result)
-		g_free (view->synctex_result);
-	view->synctex_result = mapping;
+	if (view->priv->synctex_result)
+		g_free (view->priv->synctex_result);
+	view->priv->synctex_result = mapping;
 
 	page = GPOINTER_TO_INT (mapping->data);
-	ev_document_model_set_page (view->model, page);
+	ev_document_model_set_page (view->priv->model, page);
 
 	doc_rect_to_view_rect (view, page, &mapping->area, &view_rect);
 	ensure_rectangle_is_visible (view, &view_rect);
@@ -5836,14 +5844,14 @@ compute_new_selection_rect (EvView       *view,
 	int n_pages, i;
 	GList *list = NULL;
 
-	g_assert (view->selection_mode == EV_VIEW_SELECTION_RECTANGLE);
+	g_assert (view->priv->selection_mode == EV_VIEW_SELECTION_RECTANGLE);
 	
 	view_rect.x = MIN (start->x, stop->x);
 	view_rect.y = MIN (start->y, stop->y);
 	view_rect.width = MAX (start->x, stop->x) - view_rect.x;
 	view_rect.width = MAX (start->y, stop->y) - view_rect.y;
 
-	n_pages = ev_document_get_n_pages (view->document);
+	n_pages = ev_document_get_n_pages (view->priv->document);
 
 	for (i = 0; i < n_pages; i++) {
 		GdkRectangle page_area;
@@ -5890,23 +5898,23 @@ compute_new_selection_text (EvView          *view,
 	gdouble width, height;
 	int start_page, end_page;
 
-	g_assert (view->selection_mode == EV_VIEW_SELECTION_TEXT);
+	g_assert (view->priv->selection_mode == EV_VIEW_SELECTION_TEXT);
 
-	n_pages = ev_document_get_n_pages (view->document);
+	n_pages = ev_document_get_n_pages (view->priv->document);
 
 	/* First figure out the range of pages the selection
 	 * affects. */
 	first = n_pages;
 	last = 0;
-	if (view->continuous) {
+	if (view->priv->continuous) {
 		start_page = 0;
 		end_page = n_pages;
-	} else if (view->dual_page) {
-		start_page = view->start_page;
-		end_page = view->end_page + 1;
+	} else if (view->priv->dual_page) {
+		start_page = view->priv->start_page;
+		end_page = view->priv->end_page + 1;
 	} else {
-		start_page = view->current_page;
-		end_page = view->current_page + 1;
+		start_page = view->priv->current_page;
+		end_page = view->priv->current_page + 1;
 	}
 
 	for (i = start_page; i < end_page; i++) {
@@ -5980,11 +5988,11 @@ merge_selection_region (EvView *view,
 	GList *new_list_ptr, *old_list_ptr;
 
 	/* Update the selection */
-	old_list = ev_pixbuf_cache_get_selection_list (view->pixbuf_cache);
-	g_list_foreach (view->selection_info.selections, (GFunc)selection_free, NULL);
-	g_list_free (view->selection_info.selections);
-	view->selection_info.selections = new_list;
-	ev_pixbuf_cache_set_selection_list (view->pixbuf_cache, new_list);
+	old_list = ev_pixbuf_cache_get_selection_list (view->priv->pixbuf_cache);
+	g_list_foreach (view->priv->selection_info.selections, (GFunc)selection_free, NULL);
+	g_list_free (view->priv->selection_info.selections);
+	view->priv->selection_info.selections = new_list;
+	ev_pixbuf_cache_set_selection_list (view->priv->pixbuf_cache, new_list);
 	g_signal_emit (view, signals[SIGNAL_SELECTION_CHANGED], 0, NULL);
 
 	new_list_ptr = new_list;
@@ -6022,7 +6030,7 @@ merge_selection_region (EvView *view,
 
 		/* is the page we're looking at on the screen?*/
 		cur_page = new_sel ? new_sel->page : old_sel->page;
-		if (cur_page < view->start_page || cur_page > view->end_page)
+		if (cur_page < view->priv->start_page || cur_page > view->priv->end_page)
 			continue;
 
 		/* seed the cache with a new page.  We are going to need the new
@@ -6030,9 +6038,9 @@ merge_selection_region (EvView *view,
 		if (new_sel) {
 			cairo_region_t *tmp_region = NULL;
 
-			ev_pixbuf_cache_get_selection_surface (view->pixbuf_cache,
+			ev_pixbuf_cache_get_selection_surface (view->priv->pixbuf_cache,
 							       cur_page,
-							       view->scale,
+							       view->priv->scale,
 							       &tmp_region);
 
 			if (tmp_region && !cairo_region_is_empty (tmp_region)) {
@@ -6104,8 +6112,8 @@ merge_selection_region (EvView *view,
 
 			ev_view_get_page_extents (view, cur_page, &page_area, &border);
 			cairo_region_translate (region,
-					   page_area.x + border.left - view->scroll_x,
-					   page_area.y + border.top - view->scroll_y);
+					   page_area.x + border.left - view->priv->scroll_x,
+					   page_area.y + border.top - view->priv->scroll_y);
 			gdk_window_invalidate_region (gtk_widget_get_window (GTK_WIDGET (view)), region, TRUE);
 			cairo_region_destroy (region);
 		}
@@ -6124,7 +6132,7 @@ compute_selections (EvView          *view,
 {
 	GList *list;
 
-	if (view->selection_mode == EV_VIEW_SELECTION_RECTANGLE)
+	if (view->priv->selection_mode == EV_VIEW_SELECTION_RECTANGLE)
 		list = compute_new_selection_rect (view, start, stop);
 	else
 		list = compute_new_selection_text (view, style, start, stop);
@@ -6144,16 +6152,16 @@ selection_free (EvViewSelection *selection)
 static void
 clear_selection (EvView *view)
 {
-	if (view->selection_info.selections) {
-		g_list_foreach (view->selection_info.selections, (GFunc)selection_free, NULL);
-		g_list_free (view->selection_info.selections);
-		view->selection_info.selections = NULL;
+	if (view->priv->selection_info.selections) {
+		g_list_foreach (view->priv->selection_info.selections, (GFunc)selection_free, NULL);
+		g_list_free (view->priv->selection_info.selections);
+		view->priv->selection_info.selections = NULL;
 
 		g_signal_emit (view, signals[SIGNAL_SELECTION_CHANGED], 0, NULL);
 	}
-	view->selection_info.in_selection = FALSE;
-	if (view->pixbuf_cache)
-		ev_pixbuf_cache_set_selection_list (view->pixbuf_cache, NULL);
+	view->priv->selection_info.in_selection = FALSE;
+	if (view->priv->pixbuf_cache)
+		ev_pixbuf_cache_set_selection_list (view->priv->pixbuf_cache, NULL);
 }
 
 void
@@ -6163,12 +6171,12 @@ ev_view_select_all (EvView *view)
 	int n_pages, i;
 
 	/* Disable selection on rotated pages for the 0.4.0 series */
-	if (view->rotation != 0)
+	if (view->priv->rotation != 0)
 		return;
 
 	clear_selection (view);
 	
-	n_pages = ev_document_get_n_pages (view->document);
+	n_pages = ev_document_get_n_pages (view->priv->document);
 	for (i = 0; i < n_pages; i++) {
 		gdouble width, height;
 		EvViewSelection *selection;
@@ -6192,7 +6200,7 @@ ev_view_select_all (EvView *view)
 gboolean
 ev_view_get_has_selection (EvView *view)
 {
-	return view->selection_info.selections != NULL;
+	return view->priv->selection_info.selections != NULL;
 }
 
 static char *
@@ -6206,13 +6214,13 @@ get_selected_text (EvView *view)
 
 	ev_document_doc_mutex_lock ();
 
-	for (l = view->selection_info.selections; l != NULL; l = l->next) {
+	for (l = view->priv->selection_info.selections; l != NULL; l = l->next) {
 		EvViewSelection *selection = (EvViewSelection *)l->data;
 		EvPage *page;
 		gchar *tmp;
 
-		page = ev_document_get_page (view->document, selection->page);
-		tmp = ev_selection_get_selected_text (EV_SELECTION (view->document),
+		page = ev_document_get_page (view->priv->document, selection->page);
+		tmp = ev_selection_get_selected_text (EV_SELECTION (view->priv->document),
 						      page, selection->style,
 						      &(selection->rect));
 		g_object_unref (page);
@@ -6243,7 +6251,7 @@ ev_view_copy (EvView *ev_view)
 {
 	char *text;
 
-	if (!EV_IS_SELECTION (ev_view->document))
+	if (!EV_IS_SELECTION (ev_view->priv->document))
 		return;
 
 	text = get_selected_text (ev_view);
@@ -6259,12 +6267,12 @@ ev_view_primary_get_cb (GtkClipboard     *clipboard,
 {
 	EvView *ev_view = EV_VIEW (data);
 
-	if (ev_view->link_selected) {
+	if (ev_view->priv->link_selected) {
 		gtk_selection_data_set_text (selection_data,
-					     ev_link_action_get_uri (ev_view->link_selected),
+					     ev_link_action_get_uri (ev_view->priv->link_selected),
 					     -1);
-	} else if (EV_IS_SELECTION (ev_view->document) &&
-		   ev_view->selection_info.selections) {
+	} else if (EV_IS_SELECTION (ev_view->priv->document) &&
+		   ev_view->priv->selection_info.selections) {
 		gchar *text;
 		
 		text = get_selected_text (ev_view);
@@ -6293,7 +6301,7 @@ ev_view_update_primary_selection (EvView *ev_view)
 	clipboard = gtk_widget_get_clipboard (GTK_WIDGET (ev_view),
                                               GDK_SELECTION_PRIMARY);
 
-	if (ev_view->selection_info.selections || ev_view->link_selected) {
+	if (ev_view->priv->selection_info.selections || ev_view->priv->link_selected) {
                 GtkTargetList *target_list;
                 GtkTargetEntry *targets;
                 int n_targets;
@@ -6320,9 +6328,9 @@ ev_view_update_primary_selection (EvView *ev_view)
 static void
 clear_link_selected (EvView *view)
 {
-	if (view->link_selected) {
-		g_object_unref (view->link_selected);
-		view->link_selected = NULL;
+	if (view->priv->link_selected) {
+		g_object_unref (view->priv->link_selected);
+		view->priv->link_selected = NULL;
 	}
 }
 
@@ -6334,7 +6342,7 @@ ev_view_copy_link_address (EvView       *view,
 	
 	ev_view_clipboard_copy (view, ev_link_action_get_uri (action));
 	
-	view->link_selected = g_object_ref (action);
+	view->priv->link_selected = g_object_ref (action);
 	ev_view_update_primary_selection (view);
 }
 
@@ -6346,11 +6354,11 @@ ev_view_set_cursor (EvView *view, EvViewCursor new_cursor)
 	GtkWidget *widget;
 	GdkWindow *window;
 
-	if (view->cursor == new_cursor) {
+	if (view->priv->cursor == new_cursor) {
 		return;
 	}
 
-	view->cursor = new_cursor;
+	view->priv->cursor = new_cursor;
 
 	window = gtk_widget_get_window (GTK_WIDGET (view));
 	widget = gtk_widget_get_toplevel (GTK_WIDGET (view));
@@ -6380,22 +6388,22 @@ ev_view_next_page (EvView *view)
 
 	g_return_val_if_fail (EV_IS_VIEW (view), FALSE);
 	
-	if (!view->document)
+	if (!view->priv->document)
 		return FALSE;
 
-	page = ev_document_model_get_page (view->model);
-	n_pages = ev_document_get_n_pages (view->document);
+	page = ev_document_model_get_page (view->priv->model);
+	n_pages = ev_document_get_n_pages (view->priv->document);
 
-	if (view->dual_page)
+	if (view->priv->dual_page)
 	        page = page + 2; 
 	else 
 		page = page + 1;
 
 	if (page < n_pages) {
-		ev_document_model_set_page (view->model, page);
+		ev_document_model_set_page (view->priv->model, page);
 		return TRUE;
-	} else if (view->dual_page && page == n_pages) {
-		ev_document_model_set_page (view->model, page - 1);
+	} else if (view->priv->dual_page && page == n_pages) {
+		ev_document_model_set_page (view->priv->model, page - 1);
 		return TRUE;
 	} else {
 		return FALSE;
@@ -6409,21 +6417,21 @@ ev_view_previous_page (EvView *view)
 
 	g_return_val_if_fail (EV_IS_VIEW (view), FALSE);
 
-	if (!view->document)
+	if (!view->priv->document)
 		return FALSE;
 
-	page = ev_document_model_get_page (view->model);
+	page = ev_document_model_get_page (view->priv->model);
 
-	if (view->dual_page)
+	if (view->priv->dual_page)
 	        page = page - 2; 
 	else 
 		page = page - 1;
 
 	if (page >= 0) {
-		ev_document_model_set_page (view->model, page);
+		ev_document_model_set_page (view->priv->model, page);
 		return TRUE;
-	} else if (view->dual_page && page == -1) {
-		ev_document_model_set_page (view->model, 0);
+	} else if (view->priv->dual_page && page == -1) {
+		ev_document_model_set_page (view->priv->model, 0);
 		return TRUE;
 	} else {	
 		return FALSE;
diff --git a/libview/ev-view.h b/libview/ev-view.h
index f82dc9a..fe32080 100644
--- a/libview/ev-view.h
+++ b/libview/ev-view.h
@@ -36,8 +36,14 @@ G_BEGIN_DECLS
 #define EV_VIEW(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_VIEW, EvView))
 #define EV_IS_VIEW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_VIEW))
 
-typedef struct _EvView       EvView;
-typedef struct _EvViewClass  EvViewClass;
+typedef struct _EvView        EvView;
+typedef struct _EvViewPrivate EvViewPrivate;
+typedef struct _EvViewClass   EvViewClass;
+
+struct _EvView {
+	GtkContainer parent;
+	EvViewPrivate *priv;
+};
 
 typedef enum {
 	EV_VIEW_SELECTION_TEXT,
-- 
1.7.11.2

