[gtk+] printing: Return correct width and height of page setup



commit 9ac9769f360df4d63b4f6e7cbb572092e263c5ea
Author: Marek Kasik <mkasik redhat com>
Date:   Thu Dec 18 16:25:50 2014 +0100

    printing: Return correct width and height of page setup
    
    Use correct margins when computing width and height returned by
    gtk_page_setup_get_page_width() and
    gtk_page_setup_get_page_height().
    
    https://bugzilla.gnome.org/show_bug.cgi?id=671895

 gtk/gtkpagesetup.c |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkpagesetup.c b/gtk/gtkpagesetup.c
index b0c9ef4..aa95703 100644
--- a/gtk/gtkpagesetup.c
+++ b/gtk/gtkpagesetup.c
@@ -485,10 +485,14 @@ gtk_page_setup_get_page_width (GtkPageSetup *setup,
                               GtkUnit       unit)
 {
   gdouble width;
-  
+
   width = gtk_page_setup_get_paper_width (setup, GTK_UNIT_MM);
-  width -= setup->left_margin + setup->right_margin;
-  
+  if (setup->orientation == GTK_PAGE_ORIENTATION_PORTRAIT ||
+      setup->orientation == GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT)
+    width -= setup->left_margin + setup->right_margin;
+  else
+    width -= setup->top_margin + setup->bottom_margin;
+
   return _gtk_print_convert_from_mm (width, unit);
 }
 
@@ -512,10 +516,14 @@ gtk_page_setup_get_page_height (GtkPageSetup *setup,
                                GtkUnit       unit)
 {
   gdouble height;
-  
+
   height = gtk_page_setup_get_paper_height (setup, GTK_UNIT_MM);
-  height -= setup->top_margin + setup->bottom_margin;
-  
+  if (setup->orientation == GTK_PAGE_ORIENTATION_PORTRAIT ||
+      setup->orientation == GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT)
+    height -= setup->top_margin + setup->bottom_margin;
+  else
+    height -= setup->left_margin + setup->right_margin;
+
   return _gtk_print_convert_from_mm (height, unit);
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]