Blame SOURCES/0002-printers-Fix-setting-of-page-size.patch

34cf59
From b5b421288c0df5412076b05b86d8ff532bbcae9f Mon Sep 17 00:00:00 2001
34cf59
From: Marek Kasik <mkasik@redhat.com>
34cf59
Date: Fri, 22 May 2015 11:23:19 +0200
34cf59
Subject: [PATCH 2/2] printers: Fix setting of page size
34cf59
34cf59
Set 'PageSize' instead of 'media' for new printers since we use PPD
34cf59
for construction of the combo for selecting of default paper size.
34cf59
Previously, we've been setting 'media' attribute for new printers.
34cf59
Attribute 'media' is used by IPP but we set paper size using 'PageSize'
34cf59
which comes from PPD in the options dialog. Sometimes (quite often) IPP
34cf59
gets priority over PPD in print systems. Therefore there was inconsistency
34cf59
of what user set as default paper size on the options dialog and what was used.
34cf59
34cf59
Also don't mark IPP and user's local options as default in PpPPDOptionWidget
34cf59
since it should use just PPD (we can change PPD values only in this widget).
34cf59
Since we use PPD for setting of paper size in the options dialog, we shouldn't
34cf59
show a value which user does not change actually (IPP's 'media' vs. PPD's
34cf59
'PageSize').
34cf59
34cf59
https://bugzilla.gnome.org/show_bug.cgi?id=748569
34cf59
---
34cf59
 panels/printers/pp-new-printer.c       | 4 ++--
34cf59
 panels/printers/pp-ppd-option-widget.c | 3 ---
34cf59
 panels/printers/pp-utils.c             | 8 ++++----
34cf59
 panels/printers/pp-utils.h             | 2 +-
34cf59
 4 files changed, 7 insertions(+), 10 deletions(-)
34cf59
34cf59
diff --git a/panels/printers/pp-new-printer.c b/panels/printers/pp-new-printer.c
34cf59
index c21f934..d84cc1f 100644
34cf59
--- a/panels/printers/pp-new-printer.c
34cf59
+++ b/panels/printers/pp-new-printer.c
34cf59
@@ -1326,9 +1326,9 @@ printer_configure_async (PpNewPrinter *new_printer)
34cf59
 
34cf59
   /* Set media size for printer */
34cf59
   values = g_new0 (gchar *, 2);
34cf59
-  values[0] = g_strdup (get_paper_size_from_locale ());
34cf59
+  values[0] = g_strdup (get_page_size_from_locale ());
34cf59
 
34cf59
-  printer_add_option_async (priv->name, "media", values, TRUE, NULL, pao_cb, data);
34cf59
+  printer_add_option_async (priv->name, "PageSize", values, FALSE, NULL, pao_cb, data);
34cf59
 
34cf59
   g_strfreev (values);
34cf59
 
34cf59
diff --git a/panels/printers/pp-ppd-option-widget.c b/panels/printers/pp-ppd-option-widget.c
34cf59
index 1e57c5b..f7d0bf4 100644
34cf59
--- a/panels/printers/pp-ppd-option-widget.c
34cf59
+++ b/panels/printers/pp-ppd-option-widget.c
34cf59
@@ -524,9 +524,6 @@ update_widget_real (PpPPDOptionWidget *widget)
34cf59
       if (ppd_file)
34cf59
         {
34cf59
           ppdMarkDefaults (ppd_file);
34cf59
-          cupsMarkOptions (ppd_file,
34cf59
-                           priv->destination->num_options,
34cf59
-                           priv->destination->options);
34cf59
 
34cf59
           for (iter = ppdFirstOption(ppd_file); iter; iter = ppdNextOption(ppd_file))
34cf59
             {
34cf59
diff --git a/panels/printers/pp-utils.c b/panels/printers/pp-utils.c
34cf59
index 3eb8e60..85d68ab 100644
34cf59
--- a/panels/printers/pp-utils.c
34cf59
+++ b/panels/printers/pp-utils.c
34cf59
@@ -1331,14 +1331,14 @@ printer_get_hostname (cups_ptype_t  printer_type,
34cf59
   return result;
34cf59
 }
34cf59
 
34cf59
-/* Returns default media size for current locale */
34cf59
+/* Returns default page size for current locale */
34cf59
 const gchar *
34cf59
-get_paper_size_from_locale ()
34cf59
+get_page_size_from_locale (void)
34cf59
 {
34cf59
   if (g_str_equal (gtk_paper_size_get_default (), GTK_PAPER_NAME_LETTER))
34cf59
-    return "na-letter";
34cf59
+    return "Letter";
34cf59
   else
34cf59
-    return "iso-a4";
34cf59
+    return "A4";
34cf59
 }
34cf59
 
34cf59
 typedef struct
34cf59
diff --git a/panels/printers/pp-utils.h b/panels/printers/pp-utils.h
34cf59
index 37af065..c307879 100644
34cf59
--- a/panels/printers/pp-utils.h
34cf59
+++ b/panels/printers/pp-utils.h
34cf59
@@ -297,7 +297,7 @@ PpPrintDevice *pp_print_device_copy (PpPrintDevice *device);
34cf59
 
34cf59
 void         pp_devices_list_free (PpDevicesList *result);
34cf59
 
34cf59
-const gchar *get_paper_size_from_locale (void);
34cf59
+const gchar *get_page_size_from_locale (void);
34cf59
 
34cf59
 typedef void (*GCDCallback) (GList          *devices,
34cf59
                              gboolean        finished,
34cf59
-- 
34cf59
2.4.3
34cf59