summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ChangeLog.pre-2-105
-rw-r--r--gtk/gtkprintjob.h3
-rw-r--r--gtk/gtkprintunixdialog.c17
4 files changed, 24 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 69affb2a02..66228eb203 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-06-19 Matthias Clasen <mclasen@redhat.com>
+
+ * gtk/gtkprintjob.h: Add a GENERATE_PS capability.
+ * gtk/gtkprintunixdialog.c (is_printer_active): And use it here.
+
2006-06-18 Matthias Clasen <mclasen@redhat.com>
* tests/testnouiprint.c (main): Don't open a display connection.
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index 69affb2a02..66228eb203 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,8 @@
+2006-06-19 Matthias Clasen <mclasen@redhat.com>
+
+ * gtk/gtkprintjob.h: Add a GENERATE_PS capability.
+ * gtk/gtkprintunixdialog.c (is_printer_active): And use it here.
+
2006-06-18 Matthias Clasen <mclasen@redhat.com>
* tests/testnouiprint.c (main): Don't open a display connection.
diff --git a/gtk/gtkprintjob.h b/gtk/gtkprintjob.h
index 5273c856d0..ae71832a9a 100644
--- a/gtk/gtkprintjob.h
+++ b/gtk/gtkprintjob.h
@@ -41,7 +41,8 @@ typedef enum
GTK_PRINT_CAPABILITY_COLLATE = 1 << 2,
GTK_PRINT_CAPABILITY_REVERSE = 1 << 3,
GTK_PRINT_CAPABILITY_SCALE = 1 << 4,
- GTK_PRINT_CAPABILITY_GENERATE_PDF = 1 << 5
+ GTK_PRINT_CAPABILITY_GENERATE_PDF = 1 << 5,
+ GTK_PRINT_CAPABILITY_GENERATE_PS = 1 << 6
} GtkPrintCapabilities;
typedef struct _GtkPrintJob GtkPrintJob;
diff --git a/gtk/gtkprintunixdialog.c b/gtk/gtkprintunixdialog.c
index b81de906db..ee10433e06 100644
--- a/gtk/gtkprintunixdialog.c
+++ b/gtk/gtkprintunixdialog.c
@@ -573,10 +573,17 @@ is_printer_active (GtkTreeModel *model,
result = gtk_printer_is_active (printer);
- if (result)
+ if (result &&
+ priv->manual_capabilities & (GTK_PRINT_CAPABILITY_GENERATE_PDF |
+ GTK_PRINT_CAPABILITY_GENERATE_PS))
{
- if ((priv->manual_capabilities & GTK_PRINT_CAPABILITY_GENERATE_PDF) == 0)
- result = gtk_printer_accepts_ps (printer);
+ /* Check that the printer can handle at least one of the data
+ * formats that the application supports.
+ */
+ result = ((priv->manual_capabilities & GTK_PRINT_CAPABILITY_GENERATE_PDF) &&
+ gtk_printer_accepts_pdf (printer)) ||
+ ((priv->manual_capabilities & GTK_PRINT_CAPABILITY_GENERATE_PS) &&
+ gtk_printer_accepts_ps (printer));
}
g_object_unref (printer);
@@ -1148,7 +1155,7 @@ clear_per_printer_ui (GtkPrintUnixDialog *dialog)
gtk_container_foreach (GTK_CONTAINER (priv->advanced_vbox),
(GtkCallback)gtk_widget_destroy,
NULL);
- extension_point_clear_children (priv->extension_point);
+ extension_point_clear_children (GTK_CONTAINER (priv->extension_point));
}
static void
@@ -1244,7 +1251,7 @@ selected_printer_changed (GtkTreeSelection *selection,
{
priv->printer_capabilities = _gtk_printer_get_capabilities (printer);
priv->options = _gtk_printer_get_options (printer, priv->initial_settings,
- priv->page_setup);
+ priv->page_setup);
priv->options_changed_handler =
g_signal_connect_swapped (priv->options, "changed", G_CALLBACK (options_changed_cb), dialog);