summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-04-16 19:45:11 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-04-16 19:45:11 +0000
commit399356833d184eb8577493b27e7bbeff79e6ace6 (patch)
treea6ed3a3f1fe47b9571d2fa1a226027ab814cb5b8
parent3aa742d715b5860099f07bb5600110623f666950 (diff)
parent3d53204c75c75ba195f9489f862c01f7ff956322 (diff)
downloadgtk+-399356833d184eb8577493b27e7bbeff79e6ace6.tar.gz
Merge branch 'cups-local-printer-2.2-only' into 'gtk-3-24'
Don't try to create local cups printers before CUPS 2.2 See merge request GNOME/gtk!3448
-rw-r--r--modules/printbackends/cups/gtkprintbackendcups.c13
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)