summaryrefslogtreecommitdiff
path: root/gtk/gtkprintoperation-unix.c
diff options
context:
space:
mode:
authorMatthias Clasen <matthiasc@src.gnome.org>2008-05-21 02:17:30 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2008-05-21 02:17:30 +0000
commit59ae44d00ee7876b3c69fd462d515a4f50c55b6a (patch)
tree76c8f2df967022569c134fa9e177663ffb07b27f /gtk/gtkprintoperation-unix.c
parent75a9722aa14784e70c49b988ce28589eceb752e3 (diff)
downloadgtk+-59ae44d00ee7876b3c69fd462d515a4f50c55b6a.tar.gz
RH bug 204621 - "GtkPrint" asks for "Letter" size paper when "A4" size
was chosen Patch by Marek Kasik. * gtk/gtk.symbols: * gtk/gtkprinter.[hc]: Add gtk_printer_get_default_page_size. * gtk/gtkprintbackend.[hc]: Add fallback implementation. * modules/printbackends/file/gtkprintbackendfile.c: * modules/printbackends/cups/gtkprintbackendcups.c: Implement get_default_page_size. * gtk/gtkpagesetupunixdialog.c: When selecting a different printer, select its default paper size. * gtk/gtkprintunixdialog.c: If no explicit page setup has been set, use the printer default. * gtk/gtkprintoperation-unix.c: Don't create an empty page setup if we don't have a default page setup. svn path=/trunk/; revision=20120
Diffstat (limited to 'gtk/gtkprintoperation-unix.c')
-rw-r--r--gtk/gtkprintoperation-unix.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/gtk/gtkprintoperation-unix.c b/gtk/gtkprintoperation-unix.c
index be784380f8..6b692d5360 100644
--- a/gtk/gtkprintoperation-unix.c
+++ b/gtk/gtkprintoperation-unix.c
@@ -349,7 +349,6 @@ get_print_dialog (GtkPrintOperation *op,
{
GtkPrintOperationPrivate *priv = op->priv;
GtkWidget *pd, *label;
- GtkPageSetup *page_setup;
const gchar *custom_tab_label;
pd = gtk_print_unix_dialog_new (NULL, parent);
@@ -366,13 +365,8 @@ get_print_dialog (GtkPrintOperation *op,
gtk_print_unix_dialog_set_settings (GTK_PRINT_UNIX_DIALOG (pd),
priv->print_settings);
if (priv->default_page_setup)
- page_setup = gtk_page_setup_copy (priv->default_page_setup);
- else
- page_setup = gtk_page_setup_new ();
-
- gtk_print_unix_dialog_set_page_setup (GTK_PRINT_UNIX_DIALOG (pd),
- page_setup);
- g_object_unref (page_setup);
+ gtk_print_unix_dialog_set_page_setup (GTK_PRINT_UNIX_DIALOG (pd),
+ priv->default_page_setup);
g_signal_emit_by_name (op, "create-custom-widget",
&priv->custom_widget);
@@ -432,6 +426,10 @@ finish_print (PrintResponseData *rdata,
{
gtk_print_operation_set_print_settings (op, settings);
priv->print_context = _gtk_print_context_new (op);
+
+ if ( (page_setup != NULL) && (gtk_print_operation_get_default_page_setup (op) == NULL))
+ gtk_print_operation_set_default_page_setup (op, page_setup);
+
_gtk_print_context_set_page_setup (priv->print_context, page_setup);
if (!rdata->do_preview)