On Thu, Jul 4, 2013 at 9:22 PM, Satz Klauer <satzkla...@googlemail.com> wrote:
> I want to print out some vectordata using GTK/Linux. That's what I already 
> have:
>
>
> GtkPrintOperation *op;
>
> op = gtk_print_operation_new();
> gtk_print_operation_set_n_pages(op, 1);
> gtk_print_operation_set_unit (op,GTK_UNIT_POINTS);
> g_signal_connect (op, "draw_page", G_CALLBACK(draw_page), NULL);
> if (data->config.m_printparams==1) gtk_print_operation_run(op,
> GTK_PRINT_OPERATION_ACTION_PRINT,NULL, NULL);
> else gtk_print_operation_run (op,
> GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,NULL, NULL);

I think what you are missing here is
   gtk_print_operation_set_allow_async()

Otherwise I would expect that the print operation runs it's own
main loop and synchronously runs the operation blocking any
other events until the operation completes.

Note, I have not tried using GtkPrintOperation myself, I could
be misguided, but this seems like an obvious bet ;-)

Cheers,
    -Tristan

>
> draw_page() of course exists as well:
>
> static void draw_page (GtkPrintOperation *operation,GtkPrintContext
> *context,int page_nr)
> {
>    GtkPrintSettings *settings;
>
>    cairo_t *cr = gtk_print_context_get_cairo_context (context);
>    settings = gtk_print_operation_get_print_settings (operation);
>    ...do my printing stuff here...
> }
>
> Unfortunately it does not work, gtk_print_operation_run() blocks
> forever and draw_page() is never called. Any ideas what could be
> wrong?
>
> Thanks!
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to