Random crashes when printing on OS X





I am using the GtkPrint* functions to print. However at what seems to be random occurrences the application crashes with the following error:

Gdk:ERROR:gdkeventloop-quartz.c:559:select_thread_collect_poll: assertion failed: (ufds[i].fd == current_pollfds[i].fd)
Abort trap
 

When the user clicks on the print button a signal is generated and the application comand function executes based on the following case statement:


...

    case ISI_PERM_MENU_COMPONENT_FORMULA_PRINT:

                if( isi_app_check_permission(prev_self, ISI_PERM_MENU_COMPONENT_FORMULA_PRINT) && prev_self->component != NULL){

                    isi_display_page_setup( prev_self->display, prev_self->component,FALSE);
                    isi_display_print(prev_self->display);

                } else {

                    isi_user_message(NULL,"Not Allowed","You do not have permission to print formulas.",0);
                }

            break;

...


void isi_display_print(IsiDisplay *self){

  
    GtkPrintOperation *print = NULL;
    GtkPrintSettings *printer_settings = NULL;
    GtkPageSetup *page_setup = NULL;
    GtkPaperSize *paper_size = NULL;
    guint ctype;

    /* Sanity Check */
    g_return_if_fail(self != NULL);
    g_return_if_fail(ISI_IS_DISPLAY(self) != FALSE);
    g_return_if_fail(self->priv != NULL);
    g_return_if_fail(self->priv->dispose_has_run != TRUE);

    /* Create a new print operation */
    print = gtk_print_operation_new();
   
    /* Create new page setup and paper size */
    page_setup = gtk_page_setup_new();
    paper_size = gtk_paper_size_new(GTK_PAPER_NAME_LETTER);
    gtk_page_setup_set_paper_size(page_setup,paper_size);

    /* Set the default to the new page setup */
    gtk_print_operation_set_default_page_setup(print,page_setup);
   
   
    /* Make sure we always do full page printing*/
    gtk_print_operation_set_unit(print,GTK_UNIT_INCH);
    gtk_print_operation_set_use_full_page(print,TRUE);
    gtk_print_operation_set_n_pages (print, self->priv->page_count);

    g_signal_connect(print, "draw-page", G_CALLBACK(isi_display_print_event),(gpointer)self);
   
   
   
    /* SOMEWHERE IN THIS FUNCTION THE DIALOG BLOWS UP!! */
    gtk_print_operation_run(print,GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,NULL,NULL);


return;}


Any help would be greatly appreciated.

The problem is pervasive will most printer types, but is exacerbated with the HP CP3525 Color Laserjet printer.
Shawn






i'm EMAILING FOR THE GREATER GOOD
Join me


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]