From 95787a0a4c3f6c037b22cb4ba8c98f2e8fa988de Mon Sep 17 00:00:00 2001 From: Enrico Forestieri Date: Fri, 16 May 2014 15:11:08 +0200 Subject: [PATCH] Fix an on-screen representation glitch. If a layout has NextNoIndent set to true, the following paragraph is not indented on screen. LyX checks the previous layout for that style parameter to decide whether to indent or not. Of course, what matters is the latex output and the on-screen representation should match this output. Now, when a layout has NextNoIndent==true, the latex output is correctly not indented, while the on-screen representation may fail to match this output. This can occur when, for example, a standard paragraph is nested in the previous layout, because LyX would check the property of the nested layout instead of the container layout. Thus, LyX should check the property of a previous layout at the same depth for correctly deciding whether a paragraph has to be indented or not. See also http://www.lyx.org/trac/ticket/9055#comment:12 for an example document where the previous scenario actually occurs. --- src/TextMetrics.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/TextMetrics.cpp b/src/TextMetrics.cpp index 790d706f03..0be9058fa3 100644 --- a/src/TextMetrics.cpp +++ b/src/TextMetrics.cpp @@ -1907,12 +1907,13 @@ int TextMetrics::leftMargin(int max_width, } } - // This happens after sections in standard classes. The 1.3.x - // code compared depths too, but it does not seem necessary - // (JMarc) - if (tclass.isDefaultLayout(par.layout()) - && pit > 0 && pars[pit - 1].layout().nextnoindent) - parindent.erase(); + // This happens after sections or environments in standard classes. + // We have to check the previous layout at same depth. + if (tclass.isDefaultLayout(par.layout()) && pit > 0) { + pit_type prev = text_->depthHook(pit, par.getDepth()); + if (pars[prev < pit ? prev : pit - 1].layout().nextnoindent) + parindent.erase(); + } FontInfo const labelfont = text_->labelFont(par); FontMetrics const & labelfont_metrics = theFontMetrics(labelfont); -- 2.39.2