Jean-Marc Lasgouttes <[EMAIL PROTECTED]> writes:
| I took a look at bug 668 and here are my findings (as added to the bug
| itself). Lars, I hope this is enough to get you started...
Ok, I have two patches for this one. Two different ones that both seem
to fix the problem.
I fear that one of them only fixes this special case, but I hope that
other one is generic enough to fix all such problems:
specific:
text2.C: ~1379 voidLyXText::updateCounters(BufferView * bview) const
setCounter(bview->buffer(), par);
// now check for the headline layouts. remember that they
// have a dynamic left margin
LyXLayout_ptr const & layout = par->layout();
if (layout->margintype == MARGIN_DYNAMIC
+ || layout->labeltype == LABEL_CENTERED_TOP_ENVIRONMENT
|| layout->labeltype == LABEL_SENSITIVE) {
// Rebreak the paragraph
removeParagraph(row);
appendParagraph(bview, row);
}
hopefully generic:
text2.C: ~1379 voidLyXText::updateCounters(BufferView * bview) const
string const oldLabel = par->params().labelString();
setCounter(bview->buffer(), par);
string const & newLabel = par->params().labelString();
// If the label changed, rebreak the paragraph.
if (newLabel != oldLabel) {
removeParagraph(row);
appendParagraph(bview, row);
}
Index: src/text2.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/text2.C,v
retrieving revision 1.264
diff -u -p -r1.264 text2.C
--- src/text2.C 4 Nov 2002 02:12:30 -0000 1.264
+++ src/text2.C 5 Nov 2002 18:09:41 -0000
@@ -1378,6 +1378,7 @@ void LyXText::updateCounters(BufferView
while (row->par() != par)
row = row->next();
+#if 0
setCounter(bview->buffer(), par);
// now check for the headline layouts. remember that they
@@ -1385,11 +1386,24 @@ void LyXText::updateCounters(BufferView
LyXLayout_ptr const & layout = par->layout();
if (layout->margintype == MARGIN_DYNAMIC
- || layout->labeltype == LABEL_SENSITIVE) {
+ || layout->labeltype == LABEL_SENSITIVE
+ || layout->labeltype == LABEL_CENTERED_TOP_ENVIRONMENT) {
// Rebreak the paragraph
removeParagraph(row);
appendParagraph(bview, row);
}
+#else
+ string const oldLabel = par->params().labelString();
+
+ setCounter(bview->buffer(), par);
+
+ string const & newLabel = par->params().labelString();
+
+ if (newLabel != oldLabel) {
+ removeParagraph(row);
+ appendParagraph(bview, row);
+ }
+#endif
par = par->next();
}
}
--
Lgb