diff --git a/src/ChangeLog b/src/ChangeLog index 75a681f198..1a94addef6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2002-01-07 Juergen Vigna + + * text.C (setHeightOfRow): small fix + (prepareToPrint): don't look at alignment if we don't have the place + for doing it. + 2002-01-07 Angus Leeming * box.C: New file. Move the Box methods and functions out of box.h, diff --git a/src/text.C b/src/text.C index e546e32316..543971669a 100644 --- a/src/text.C +++ b/src/text.C @@ -1548,6 +1548,8 @@ void LyXText::setHeightOfRow(BufferView * bview, Row * row_ptr) const float x = 0; if (layout.margintype != MARGIN_RIGHT_ADDRESS_BOX) { float dummy; + // this IS needed + row_ptr->width(maxwidth); prepareToPrint(bview, row_ptr, x, dummy, dummy, dummy, false); } row_ptr->width(int(maxwidth + x)); @@ -2079,7 +2081,7 @@ void LyXText::prepareToPrint(BufferView * bview, fill_separator = 0; fill_label_hfill = 0; - bool const is_rtl = + bool const is_rtl = row->par()->isRightToLeftPar(bview->buffer()->params); if (is_rtl) { x = (workWidth(bview) > 0) @@ -2106,7 +2108,10 @@ void LyXText::prepareToPrint(BufferView * bview, if (nh) { if (w > 0) fill_hfill = w / nh; - } else { + // we don't have to look at the alignment if it is ALIGN_LEFT and + // if the row is already larger then the permitted width as then + // we force the LEFT_ALIGN'edness! + } else if (static_cast(row->width()) < workWidth(bview)) { // is it block, flushleft or flushright? // set x how you need it int align; diff --git a/src/text2.C b/src/text2.C index 19ad0bdc1d..2437cf1570 100644 --- a/src/text2.C +++ b/src/text2.C @@ -2124,7 +2124,7 @@ void LyXText::setCursor(BufferView * bview, LyXCursor & cur, Paragraph * par, float fill_hfill; float fill_label_hfill; prepareToPrint(bview, row, x, fill_separator, fill_hfill, - fill_label_hfill); + fill_label_hfill); pos_type cursor_vpos = 0; pos_type last = rowLastPrintable(row);