Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 9874b4830b9e9477e549e796aa91d7a3 > files > 5

evince-0.6.0-9.el5.src.rpm

--- evince-0.6.0/shell/ev-jobs.c	2009-06-10 13:07:16.000000000 +0200
+++ evince-0.6.0/shell/ev-jobs.c	2009-06-10 15:07:30.000000000 +0200
@@ -696,7 +696,7 @@ ev_job_print_run (EvJobPrint *job)
 				continue;
 			}
 
-			if (job->collate)
+			if (!job->collate)
 				n_pages = job->copies;
 
 			for (j = 0; j < n_pages; j++) {
@@ -706,7 +706,7 @@ ev_job_print_run (EvJobPrint *job)
 			page += step;
 		}
 
-		if (job->collate)
+		if (!job->collate)
 			break;
 	}
 
--- evince-0.6.0/shell/ev-window.c	2009-06-09 16:47:15.000000000 +0200
+++ evince-0.6.0/shell/ev-window.c	2009-06-11 14:24:18.000000000 +0200
@@ -1467,6 +1467,16 @@ ev_window_print_job_cb (EvJobPrint *job,
 	g_assert (job->temp_file != NULL);
 
 	ev_window_print_send (window, job->temp_file);
+
+	if (window->priv->printer &&
+	    gtk_printer_is_virtual (window->priv->printer) &&
+	    window->priv->print_settings &&
+	    job) {
+		gtk_print_settings_set_n_copies (window->priv->print_settings, job->copies);
+		gtk_print_settings_set_collate (window->priv->print_settings, job->collate);
+		gtk_print_settings_set_reverse (window->priv->print_settings, job->reverse);
+		gtk_print_settings_set_page_set (window->priv->print_settings, (GtkPageSet) job->page_set);
+	}
 }
 
 static gboolean
@@ -1549,7 +1559,6 @@ ev_window_print_dialog_response_cb (GtkD
 		}
 		
 		
-                page_set = (EvPrintPageSet)gtk_print_settings_get_page_set (window->priv->print_settings);                
                 scale = gtk_print_settings_get_scale (window->priv->print_settings) * 0.01;
 
 		width = gtk_page_setup_get_paper_width (window->priv->print_page_setup,
@@ -1562,9 +1571,25 @@ ev_window_print_dialog_response_cb (GtkD
   	                 height *= scale;
   	        }
 
-                copies = gtk_print_settings_get_n_copies (window->priv->print_settings);
-                collate = gtk_print_settings_get_collate (window->priv->print_settings);
-                reverse = gtk_print_settings_get_reverse (window->priv->print_settings);
+		if (window->priv->printer &&
+		    gtk_printer_is_virtual (window->priv->printer) &&
+		    window->priv->print_settings) {
+			copies = gtk_print_settings_get_n_copies (window->priv->print_settings);
+			collate = gtk_print_settings_get_collate (window->priv->print_settings);
+			reverse = gtk_print_settings_get_reverse (window->priv->print_settings);
+			page_set = (EvPrintPageSet) gtk_print_settings_get_page_set (window->priv->print_settings);
+			gtk_print_settings_set_n_copies (window->priv->print_settings, 1);
+			gtk_print_settings_set_collate (window->priv->print_settings, FALSE);
+			gtk_print_settings_set_reverse (window->priv->print_settings, FALSE);
+			gtk_print_settings_set_page_set (window->priv->print_settings, GTK_PAGE_SET_ALL);
+		}
+		else {
+			copies = 1;
+			collate = FALSE;
+			reverse = FALSE;
+			page_set = EV_PRINT_PAGE_SET_ALL;
+		}
+
   	 
   	         window->priv->print_job = ev_job_print_new (window->priv->document,
                                                              width, height,