static GQueue *thumbnail_queue_low = NULL;
static GQueue *xfer_queue = NULL;
static GQueue *fonts_queue = NULL;
+static GQueue *print_queue = NULL;
/* Queues used for backends supporting EvAsyncRender interface,
they are executed on the main thread */
ev_job_render_run (EV_JOB_RENDER (job));
else if (EV_IS_JOB_FONTS (job))
ev_job_fonts_run (EV_JOB_FONTS (job));
+ else if (EV_IS_JOB_PRINT (job))
+ ev_job_print_run (EV_JOB_PRINT (job));
if (!EV_JOB (job)->async) {
/* We let the idle own a ref, as we (the queue) are done with the job. */
if (job)
return job;
+ job = (EvJob *) g_queue_pop_head (print_queue);
+ if (job)
+ return job;
+
return NULL;
}
&& g_queue_is_empty (xfer_queue)
&& g_queue_is_empty (thumbnail_queue_high)
&& g_queue_is_empty (thumbnail_queue_low)
- && g_queue_is_empty (fonts_queue);
+ && g_queue_is_empty (fonts_queue)
+ && g_queue_is_empty (print_queue);
}
/* the thread mainloop function */
thumbnail_queue_high = g_queue_new ();
thumbnail_queue_low = g_queue_new ();
fonts_queue = g_queue_new ();
+ print_queue = g_queue_new ();
g_thread_create (ev_render_thread, NULL, FALSE, NULL);
} else if (EV_IS_JOB_FONTS (job)) {
/* the priority doesn't effect fonts */
return fonts_queue;
+ } else if (EV_IS_JOB_PRINT (job)) {
+ /* the priority doesn't effect print */
+ return print_queue;
}
}
retval = remove_job_from_queue_locked (xfer_queue, job);
} else if (EV_IS_JOB_FONTS (job)) {
retval = remove_job_from_queue_locked (fonts_queue, job);
+ } else if (EV_IS_JOB_PRINT (job)) {
+ retval = remove_job_from_queue_locked (print_queue, job);
} else {
g_assert_not_reached ();
}