|
|
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 |
|