Added this patch to fix. The rationale for the fix is that if the backend of
providing the GTK_PRINT_CAPABILITY_COPIES, then the front end should only
generate a copy of the postscript from cairo surface. If the backend is not
providing this capability, the front end has to do the hardwork of generating
the all the required pages into one file and simply send to the backend.
$ svn diff base-specs/gtk2.spec patches/gtk+-15-handle-copies.diff
Index: base-specs/gtk2.spec
===================================================================
--- base-specs/gtk2.spec (revision 20386)
+++ base-specs/gtk2.spec (working copy)
@@ -50,6 +50,8 @@
Patch13: gtk+-13-show-lpr-backend.diff
# date:2009-10-11 owner:gheet type:bug doo#11830
Patch14: gtk+-14-check-libs.diff
+# date:2010-01-07 owner:gheet type:bug doo#13625
+Patch15: gtk+-15-handle-copies.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Docdir: %{_defaultdocdir}/doc
@@ -132,6 +134,7 @@
%patch12 -p1
%patch13 -p1
%patch14 -p1
+%patch15 -p1
%build
%ifos linux
Index: patches/gtk+-15-handle-copies.diff
===================================================================
--- patches/gtk+-15-handle-copies.diff (revision 0)
+++ patches/gtk+-15-handle-copies.diff (revision 0)
@@ -0,0 +1,17 @@
+diff -urN gtk+-2.19.0/gtk/gtkprintoperation-unix.c
../../SUNWgtk2-2.19.0.hacked/i386/gtk+-2.19.0/gtk/gtkprintoperation-unix.c
+--- gtk+-2.19.0/gtk/gtkprintoperation-unix.c 2010-01-07 14:45:55.518849788
+0000
++++
../../SUNWgtk2-2.19.0.hacked/i386/gtk+-2.19.0/gtk/gtkprintoperation-unix.c2010-01-07
14:54:43.597755579 +0000
+@@ -578,7 +578,12 @@
+ priv->page_ranges = job->page_ranges;
+ priv->num_page_ranges = job->num_page_ranges;
+
+- priv->manual_num_copies = job->num_copies;
++ if (gtk_printer_get_capabilities (gtk_print_job_get_printer (job))
&
++ GTK_PRINT_CAPABILITY_COPIES)
++ priv->manual_num_copies = 1;
++ else
++ priv->manual_num_copies = job->num_copies;
++
+ priv->manual_collation = job->collate;
+ priv->manual_reverse = job->reverse;
+ priv->manual_page_set = job->page_set;