]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-jobs.c
Require poppler_form_field_text_is_password from CVS
[evince.git] / shell / ev-jobs.c
index d5d45f2206670703ee4cde012e875bb4f88df439..1218cd063314451300fc05f90a9622c76a93b9cc 100644 (file)
@@ -326,6 +326,8 @@ render_finished_cb (EvDocument      *document,
 
        /* 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));
 }
@@ -342,7 +344,10 @@ static void
 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
@@ -562,6 +567,7 @@ ev_job_print_new (EvDocument    *document,
                  EvPrintRange  *ranges,
                  gint           n_ranges,
                  EvPrintPageSet page_set,
+                 gint           pages_per_sheet,
                  gint           copies,
                  gdouble        collate,
                  gdouble        reverse)
@@ -584,6 +590,8 @@ ev_job_print_new (EvDocument    *document,
        job->n_ranges = n_ranges;
 
        job->page_set = page_set;
+
+       job->pages_per_sheet = pages_per_sheet;
        
        job->copies = copies;
        job->collate = collate;
@@ -711,6 +719,7 @@ ev_job_print_run (EvJobPrint *job)
        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);