Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-print-job.c
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@src.gnome.org>2005-03-23 11:07:32 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-03-23 11:07:32 (GMT)
commit1c0d19bd22598eca159c3febdcdaf4168891cb8f (patch)
tree76cc5403e6c20380228ab3f7718130162fbf864d /shell/ev-print-job.c
parent730f128d1fb4feb815c8111c9956d1598c655408 (diff)
merge evince-threads branch
Diffstat (limited to 'shell/ev-print-job.c')
-rw-r--r--shell/ev-print-job.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/shell/ev-print-job.c b/shell/ev-print-job.c
index 0c66b81..ba283ff 100644
--- a/shell/ev-print-job.c
+++ b/shell/ev-print-job.c
@@ -224,31 +224,40 @@ ev_print_job_use_print_dialog_settings (EvPrintJob *job, GnomePrintDialog *dialo
gnome_print_config_get_page_size (print_config,
&job->width, &job->height);
gnome_print_config_get_boolean (print_config,
- GNOME_PRINT_KEY_DUPLEX, &job->duplex);
+ (guchar *)GNOME_PRINT_KEY_DUPLEX, &job->duplex);
gnome_print_config_unref (print_config);
}
static gboolean
idle_print_handler (EvPrintJob *job)
{
+ EvPageCache *page_cache;
+
if (!job->printing) {
+ g_mutex_lock (EV_DOC_MUTEX);
ev_ps_exporter_begin (EV_PS_EXPORTER (job->document),
job->temp_file);
+ g_mutex_unlock (EV_DOC_MUTEX);
job->next_page = 1; /* FIXME use 0-based page numbering? */
job->printing = TRUE;
return TRUE;
}
- if (job->next_page <= ev_document_get_n_pages (job->document)) {
+ page_cache = ev_document_get_page_cache (job->document);
+ if (job->next_page <= ev_page_cache_get_n_pages (page_cache)) {
#if 0
g_printerr ("Printing page %d\n", job->next_page);
#endif
+ g_mutex_lock (EV_DOC_MUTEX);
ev_ps_exporter_do_page (EV_PS_EXPORTER (job->document),
job->next_page);
+ g_mutex_unlock (EV_DOC_MUTEX);
job->next_page++;
return TRUE;
} else { /* no more pages */
+ g_mutex_lock (EV_DOC_MUTEX);
ev_ps_exporter_end (EV_PS_EXPORTER (job->document));
+ g_mutex_unlock (EV_DOC_MUTEX);
close (job->fd);
job->fd = 0;