+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
( 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
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.;
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;