talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit b102867c02282b54a81b30e25b391ef8f60259dc
parent e8c02a862d5004a6cfa21d0facd8223aa1cc7495
Author: Holger Berndt <hb@claws-mail.org>
Date:   Sat, 23 Aug 2008 23:55:59 +0000

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

Diffstat:
MChangeLog | 8++++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/printing.c | 21+++++++++++++--------
4 files changed, 23 insertions(+), 9 deletions(-)

diff --git 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 diff --git a/PATCHSETS b/PATCHSETS @@ -3480,3 +3480,4 @@ ( 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 diff --git a/configure.ac b/configure.ac @@ -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= diff --git a/src/printing.c b/src/printing.c @@ -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;