mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-26 05:31:07 +00:00
Honor PPD reading over listing of printers
Reading of PPD files collides with getting list of printers. It helps to give higher priority to getting of PPDs than to getting list of printers (#614581).
This commit is contained in:
parent
b18b33ae82
commit
33097d65b7
@ -116,6 +116,7 @@ struct _GtkPrintBackendCups
|
||||
guint got_default_printer : 1;
|
||||
guint default_printer_poll;
|
||||
GtkCupsConnectionTest *cups_connection_test;
|
||||
gint reading_ppds;
|
||||
|
||||
char **covers;
|
||||
int number_of_covers;
|
||||
@ -588,6 +589,7 @@ gtk_print_backend_cups_init (GtkPrintBackendCups *backend_cups)
|
||||
backend_cups->got_default_printer = FALSE;
|
||||
backend_cups->list_printers_pending = FALSE;
|
||||
backend_cups->list_printers_attempts = 0;
|
||||
backend_cups->reading_ppds = 0;
|
||||
|
||||
backend_cups->requests = NULL;
|
||||
backend_cups->auth = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, overwrite_and_free);
|
||||
@ -2142,7 +2144,7 @@ cups_request_printer_list (GtkPrintBackendCups *cups_backend)
|
||||
"auth-info-required"
|
||||
};
|
||||
|
||||
if (cups_backend->list_printers_pending)
|
||||
if (cups_backend->reading_ppds > 0 || cups_backend->list_printers_pending)
|
||||
return TRUE;
|
||||
|
||||
state = gtk_cups_connection_test_get_state (cups_backend->cups_connection_test);
|
||||
@ -2240,6 +2242,7 @@ cups_request_ppd_cb (GtkPrintBackendCups *print_backend,
|
||||
|
||||
printer = GTK_PRINTER (data->printer);
|
||||
GTK_PRINTER_CUPS (printer)->reading_ppd = FALSE;
|
||||
print_backend->reading_ppds--;
|
||||
|
||||
if (gtk_cups_result_is_error (result))
|
||||
{
|
||||
@ -2386,6 +2389,7 @@ cups_request_ppd (GtkPrinter *printer)
|
||||
|
||||
|
||||
cups_printer->reading_ppd = TRUE;
|
||||
GTK_PRINT_BACKEND_CUPS (print_backend)->reading_ppds++;
|
||||
|
||||
cups_request_execute (GTK_PRINT_BACKEND_CUPS (print_backend),
|
||||
request,
|
||||
|
Loading…
Reference in New Issue
Block a user