commit 045c25cf761dbc2d9efcab73af42a52496dcb075
Author: Juergen Spitzmueller <[email protected]>
Date:   Sat Oct 30 14:19:46 2021 +0200

    Prevent unneeded (and wrong) \noindent
    
    * When a paragraph is logically empty (only contains stuff which is not
      part of the text sequence
    
    * In centered paragraphs
---
 src/Paragraph.cpp |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index 09874a0..dc4be43 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -2339,13 +2339,26 @@ int Paragraph::Private::startTeXParParams(BufferParams 
const & bparams,
                        (layout_->toggle_indent != ITOGGLE_NEVER) :
                        (layout_->toggle_indent == ITOGGLE_ALWAYS);
 
-       if (canindent && params_.noindent() && !layout_->pass_thru) {
-               os << "\\noindent ";
-               column += 10;
+       // Paragraphs that only contain insets which are not part of the text 
sequence
+       // (e.g., floats) should not get \\noindent (this would cause extra 
white space)
+       bool emptypar = true;
+       if (canindent) {
+               for (pos_type i = 0; i < owner_->size(); ++i) {
+                       if (!owner_->isInset(i) || 
owner_->getInset(i)->isPartOfTextSequence()) {
+                               emptypar = false;
+                               break;
+                       }
+               }
        }
 
        LyXAlignment const curAlign = params_.align();
 
+       if (canindent && !emptypar && params_.noindent()
+           && !layout_->pass_thru && curAlign != LYX_ALIGN_CENTER) {
+               os << "\\noindent ";
+               column += 10;
+       }
+
        if (curAlign == layout_->align)
                return column;
 
-- 
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to