diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 5 | ||||
-rw-r--r-- | gtk/gtkprintjob.h | 3 | ||||
-rw-r--r-- | gtk/gtkprintunixdialog.c | 17 |
4 files changed, 24 insertions, 6 deletions
@@ -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); |