+ job_info->points_set = FALSE;
+ if (job_render->include_selection) {
+ if (job_info->selection) {
+ cairo_surface_destroy (job_info->selection);
+ job_info->selection = NULL;
+ }
+ if (job_info->selection_region) {
+ gdk_region_destroy (job_info->selection_region);
+ job_info->selection_region = NULL;
+ }
+
+ job_info->selection_points = job_render->selection_points;
+ job_info->selection_region = gdk_region_copy (job_render->selection_region);
+ job_info->selection = cairo_surface_reference (job_render->selection);
+ g_assert (job_info->selection_points.x1 >= 0);
+ job_info->points_set = TRUE;
+ }
+
+ if (job_info->job) {
+ g_signal_handlers_disconnect_by_func (job_info->job,
+ G_CALLBACK (job_page_ready_cb),
+ pixbuf_cache);
+ }
+
+ job_info->page_ready = TRUE;
+}
+
+static void
+copy_job_to_job_info (EvJobRender *job_render,
+ CacheJobInfo *job_info,
+ EvPixbufCache *pixbuf_cache)
+{