2008-08-23 [holger] 3.5.0cvs69
authorHolger Berndt <hb@claws-mail.org>
Sat, 23 Aug 2008 23:55:59 +0000 (23:55 +0000)
committerHolger Berndt <hb@claws-mail.org>
Sat, 23 Aug 2008 23:55:59 +0000 (23:55 +0000)
* src/printing.c
Fix bug 1699 'Separator line mis-placed when
printing some e-mails'. The number of header lines
was not correctly calculated when Pango inserts
linebreaks

ChangeLog
PATCHSETS
configure.ac
src/printing.c

index 5198fe427ade3dc81bafa2caf6e82f9b3fa06fff..5543a160d0f8f04ee787aee734d7c98533570b6b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-08-23 [holger]    3.5.0cvs69
+
+       * src/printing.c
+               Fix bug 1699 'Separator line mis-placed when
+               printing some e-mails'. The number of header lines
+               was not correctly calculated when Pango inserts
+               linebreaks
+
 2008-08-23 [colin]     3.5.0cvs68
 
        * src/mainwindow.c
index 658dfed31c3896fb508b3f961cabbe5d6c145ed2..807aaa3936de7ebf3ce9bdecebaa8aad7bf5ec9d 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.382.2.468 -r 1.382.2.469 src/compose.c;  cvs diff -u -r 1.204.2.176 -r 1.204.2.177 src/prefs_common.c;  cvs diff -u -r 1.103.2.111 -r 1.103.2.112 src/prefs_common.h;  cvs diff -u -r 1.1.2.16 -r 1.1.2.17 src/prefs_wrapping.c;  ) > 3.5.0cvs66.patchset
 ( cvs diff -u -r 1.382.2.469 -r 1.382.2.470 src/compose.c;  cvs diff -u -r 1.50.2.49 -r 1.50.2.50 src/compose.h;  cvs diff -u -r 1.274.2.268 -r 1.274.2.269 src/mainwindow.c;  cvs diff -u -r 1.395.2.382 -r 1.395.2.383 src/summaryview.c;  ) > 3.5.0cvs67.patchset
 ( cvs diff -u -r 1.274.2.269 -r 1.274.2.270 src/mainwindow.c;  ) > 3.5.0cvs68.patchset
+( cvs diff -u -r 1.1.2.14 -r 1.1.2.15 src/printing.c;  ) > 3.5.0cvs69.patchset
index 96dfeb7ec1cd89418fa1d7f12dd9bdb413596a42..ae84b9838232b11c66687f315dd842762bf0bc8d 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=5
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=68
+EXTRA_VERSION=69
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index a5be65531afffee92c42d3289d27790e674e93cd..86e2ee070f5e75ad16facd0a1f075a6c8e4644ba 100644 (file)
@@ -775,7 +775,9 @@ static void printing_textview_cb_begin_print(GtkPrintOperation *op, GtkPrintCont
   int start, ii;
   PangoLayoutIter *iter;
   double start_pos;
+  gint header_end_pos;
   gint num_header_lines;
+  gint dummy;
   gboolean header_done;
   const gchar *text;
   double line_height =0.;
@@ -813,21 +815,24 @@ static void printing_textview_cb_begin_print(GtkPrintOperation *op, GtkPrintCont
   start_pos = 0.;
   iter = pango_layout_get_iter(print_data->layout);
 
-  /* count number of header lines */
-  num_header_lines = 0;
+  /* find the last character of the header */
+  header_end_pos = 0;
   header_done = FALSE;
   text = pango_layout_get_text(print_data->layout);
   if(text && *text && *text != '\n') {
     do {
-      if(text[0] == '\n' && (text[1] != '\0')) {
-       num_header_lines++;
-       if(text[1] == '\n') {
-         header_done = TRUE;
-       }
-      }
+      if(text[0] == '\n' && (text[1] != '\0') && (text[1] == '\n'))
+       header_done = TRUE;
+      else
+       header_end_pos++;
       text++;
     } while(*text && !header_done);
   }
+  /* find line number for header end */
+  pango_layout_index_to_line_x(print_data->layout, header_end_pos, 1,
+                              &num_header_lines, &dummy);
+  /* line count is zero-based */
+  num_header_lines++;
 
   do {
     PangoRectangle logical_rect;