/* FIXME: ps backend should be ported to cairo */
job->surface = ev_document_misc_surface_from_pixbuf (pixbuf);
+ job->page_ready = TRUE;
+ g_signal_emit (job, job_render_signals[PAGE_READY], 0);
EV_JOB (job)->finished = TRUE;
ev_job_finished (EV_JOB (job));
}
ev_job_render_page_ready (EvJobRender *job)
{
job->page_ready = TRUE;
- g_idle_add ((GSourceFunc)notify_page_ready, job);
+ g_idle_add_full (G_PRIORITY_HIGH_IDLE,
+ (GSourceFunc)notify_page_ready,
+ g_object_ref (job),
+ (GDestroyNotify)g_object_unref);
}
void
EvPrintRange *ranges,
gint n_ranges,
EvPrintPageSet page_set,
+ gint pages_per_sheet,
gint copies,
gdouble collate,
gdouble reverse)
job->n_ranges = n_ranges;
job->page_set = page_set;
+
+ job->pages_per_sheet = pages_per_sheet;
job->copies = copies;
job->collate = collate;
fc.paper_width = job->width;
fc.paper_height = job->height;
fc.duplex = FALSE;
+ fc.pages_per_sheet = job->pages_per_sheet;
ev_document_doc_mutex_lock ();
ev_file_exporter_begin (EV_FILE_EXPORTER (document), &fc);