From 48cf7d9e7e2677bb5687e2c9b600fda7b56e0056 Mon Sep 17 00:00:00 2001 From: Adrian Johnson Date: Sat, 21 Nov 2009 20:07:14 +1030 Subject: [PATCH] Set unix printer hard margins on print context --- gtk/gtkprintoperation-private.h | 5 +++++ gtk/gtkprintoperation-unix.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/gtk/gtkprintoperation-private.h b/gtk/gtkprintoperation-private.h index 5e28007bee..c1f047c2dd 100644 --- a/gtk/gtkprintoperation-private.h +++ b/gtk/gtkprintoperation-private.h @@ -140,6 +140,11 @@ void _gtk_print_context_set_page_setup (GtkPrintCon GtkPageSetup *page_setup); void _gtk_print_context_translate_into_margin (GtkPrintContext *context); void _gtk_print_context_rotate_according_to_orientation (GtkPrintContext *context); +void _gtk_print_context_set_hard_margins (GtkPrintContext *context, + gdouble top, + gdouble bottom, + gdouble left, + gdouble right); G_END_DECLS diff --git a/gtk/gtkprintoperation-unix.c b/gtk/gtkprintoperation-unix.c index a36eced955..5940600b76 100644 --- a/gtk/gtkprintoperation-unix.c +++ b/gtk/gtkprintoperation-unix.c @@ -538,12 +538,16 @@ finish_print (PrintResponseData *rdata, GtkPrintOperation *op = rdata->op; GtkPrintOperationPrivate *priv = op->priv; GtkPrintJob *job; + gdouble top, bottom, left, right; if (rdata->do_print) { gtk_print_operation_set_print_settings (op, settings); priv->print_context = _gtk_print_context_new (op); + if (gtk_printer_get_hard_margins (printer, &top, &bottom, &left, &right)) + _gtk_print_context_set_hard_margins (priv->print_context, top, bottom, left, right); + if (page_setup != NULL && (gtk_print_operation_get_default_page_setup (op) == NULL || page_setup_set))