From: Alfredo Braunstein Date: Mon, 1 Mar 2004 17:25:16 +0000 (+0000) Subject: fix row breaking before display()ed insets X-Git-Tag: 1.6.10~15479 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=d0bcd26ec50523b6b50357a34218332e24493d8c;p=lyx.git fix row breaking before display()ed insets git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8473 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/ChangeLog b/src/ChangeLog index e399c247fb..b96e47b5c9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,11 +1,6 @@ 2004-03-01 Alfredo Braunstein - * lyxtext.h: - * text.C: - * text2.C: - * rowpainter.C: - * BufferView_pimpl.C: rename textwidth -> maxwidth, - prepareToPrint -> computeRowMetrics and remove textWidth accessor. + * text.C (rowBreakPoint): fix breaking before displayed insets 2004-03-01 André Pönitz @@ -23,6 +18,15 @@ * text2.C: * text3.C: adjust +2004-03-01 Alfredo Braunstein + + * lyxtext.h: + * text.C: + * text2.C: + * rowpainter.C: + * BufferView_pimpl.C: rename textwidth -> maxwidth, + prepareToPrint -> computeRowMetrics and remove textWidth accessor. + 2004-03-01 Alfredo Braunstein * Bidi.[Ch] (computeTables): const correctness diff --git a/src/text.C b/src/text.C index 3951e81102..74ccfbef41 100644 --- a/src/text.C +++ b/src/text.C @@ -493,23 +493,6 @@ void LyXText::rowBreakPoint(ParagraphList::iterator pit, Row & row) const pos_type point = end; pos_type i = pos; for ( ; i < end; ++i, ++fi) { - if (pit->isNewline(i)) { - point = i + 1; - break; - } - // Break before... - if (i + 1 < end) { - if (pit->isInset(i + 1) && pit->getInset(i + 1)->display()) { - point = i + 1; - break; - } - // ...and after. - if (pit->isInset(i) && pit->getInset(i)->display()) { - point = i + 1; - break; - } - } - char const c = pit->getChar(i); { @@ -544,6 +527,23 @@ void LyXText::rowBreakPoint(ParagraphList::iterator pit, Row & row) const break; } + if (pit->isNewline(i)) { + point = i + 1; + break; + } + // Break before... + if (i + 1 < end) { + if (pit->isInset(i + 1) && pit->getInset(i + 1)->display()) { + point = i + 1; + break; + } + // ...and after. + if (pit->isInset(i) && pit->getInset(i)->display()) { + point = i + 1; + break; + } + } + if (!pit->isInset(i) || pit->getInset(i)->isChar()) { // some insets are line separators too if (pit->isLineSeparator(i)) { @@ -554,10 +554,9 @@ void LyXText::rowBreakPoint(ParagraphList::iterator pit, Row & row) const } } - if (i == end && x < width) { - // maybe found one, but the par is short enough. + // maybe found one, but the par is short enough. + if (i == end && x < width) point = end; - } // manual labels cannot be broken in LaTeX. But we // want to make our on-screen rendering of footnotes