diff options
author | John Ralls <jralls@ceridwen.us> | 2021-04-16 12:15:45 -0700 |
---|---|---|
committer | John Ralls <jralls@ceridwen.us> | 2021-04-16 12:17:11 -0700 |
commit | 3d53204c75c75ba195f9489f862c01f7ff956322 (patch) | |
tree | a6ed3a3f1fe47b9571d2fa1a226027ab814cb5b8 | |
parent | 3aa742d715b5860099f07bb5600110623f666950 (diff) | |
download | gtk+-3d53204c75c75ba195f9489f862c01f7ff956322.tar.gz |
Don't try to create local cups printers before CUPS 2.2
Not supported on earlier versions.
-rw-r--r-- | modules/printbackends/cups/gtkprintbackendcups.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/modules/printbackends/cups/gtkprintbackendcups.c b/modules/printbackends/cups/gtkprintbackendcups.c index 6b8c9e02ad..d5c00f94f9 100644 --- a/modules/printbackends/cups/gtkprintbackendcups.c +++ b/modules/printbackends/cups/gtkprintbackendcups.c @@ -61,6 +61,10 @@ #include <colord.h> #endif +#if ((CUPS_VERSION_MAJOR == 2 && CUPS_VERSION_MINOR >= 2) || CUPS_VERSION_MAJOR > 2) +#define HAVE_CUPS_2_2 +#endif + typedef struct _GtkPrintBackendCupsClass GtkPrintBackendCupsClass; #define GTK_PRINT_BACKEND_CUPS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PRINT_BACKEND_CUPS, GtkPrintBackendCupsClass)) @@ -242,10 +246,12 @@ static void secrets_service_vanished_cb (GDBusConnec const gchar *name, gpointer user_data); +#ifdef HAVE_CUPS_2_2 static void create_temporary_queue (GtkPrintBackendCups *backend, const gchar *printer_name, const gchar *printer_uri, const gchar *device_uri); +#endif static void gtk_print_backend_cups_register_type (GTypeModule *module) @@ -1896,10 +1902,12 @@ mark_printer_inactive (GtkPrinter *printer, if (iter == NULL) { /* Recreate temporary queue since they are created for 60 seconds only. */ +#ifdef HAVE_CUPS_2_2 create_temporary_queue (GTK_PRINT_BACKEND_CUPS (backend), gtk_printer_get_name (printer), cups_printer->printer_uri, cups_printer->temporary_queue_device_uri); +#endif } } else @@ -3017,6 +3025,7 @@ cups_create_local_printer_cb (GtkPrintBackendCups *print_backend, /* * Create CUPS temporary queue. */ +#ifdef HAVE_CUPS_2_2 static void create_temporary_queue (GtkPrintBackendCups *backend, const gchar *printer_name, @@ -3057,7 +3066,7 @@ create_temporary_queue (GtkPrintBackendCups *backend, NULL, NULL); } - +#endif /* * Create new GtkPrinter from informations included in TXT records. */ @@ -4552,10 +4561,12 @@ cups_printer_request_details (GtkPrinter *printer) if (cups_printer->avahi_browsed) { +#ifdef HAVE_CUPS_2_2 create_temporary_queue (GTK_PRINT_BACKEND_CUPS (gtk_printer_get_backend (printer)), gtk_printer_get_name (printer), cups_printer->printer_uri, cups_printer->temporary_queue_device_uri); +#endif } else if (!cups_printer->reading_ppd && gtk_printer_cups_get_ppd (cups_printer) == NULL) |