]> git.lyx.org Git - lyx.git/blobdiff - src/TextMetrics.cpp
Avoid too much verbosity.
[lyx.git] / src / TextMetrics.cpp
index 778da312a714a3af675b44fc90f37e6d9bdf8b65..ecc9e5219487d3015fde15ecb0d6aaf336fcb139 100644 (file)
@@ -375,6 +375,21 @@ bool TextMetrics::redoParagraph(pit_type const pit)
        main_text_ = (text_ == &buffer.text());
        bool changed = false;
 
+       // FIXME: This check ought to be done somewhere else. It is the reason
+       // why text_ is not     const. But then, where else to do it?
+       // Well, how can you end up with either (a) a biblio environment that
+       // has no InsetBibitem or (b) a biblio environment with more than one
+       // InsetBibitem? I think the answer is: when paragraphs are merged;
+       // when layout is set; when material is pasted.
+       int const moveCursor = par.checkBiblio(buffer);
+       if (moveCursor > 0)
+               const_cast<Cursor &>(bv_->cursor()).posForward();
+       else if (moveCursor < 0) {
+               Cursor & cursor = const_cast<Cursor &>(bv_->cursor());
+               if (cursor.pos() >= -moveCursor)
+                       cursor.posBackward();
+       }
+
        // Optimisation: this is used in the next two loops
        // so better to calculate that once here.
        int const right_margin = rightMargin(pm);