From a596736d76c318f94c36135756b1d1376c042539 Mon Sep 17 00:00:00 2001 From: Enrico Forestieri Date: Thu, 22 May 2014 23:47:38 +0200 Subject: [PATCH] Fix another glitch with on-screen indentation. If a new paragraph is created just before a nested environment, the indentation of the nested environment is not computed correctly because the parindent of the previous layout would also be erroneously taken into account. This would cause the nested environment to move back and forth when something is added to the new paragraph. --- src/TextMetrics.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/TextMetrics.cpp b/src/TextMetrics.cpp index 226f842081..de414ea44a 100644 --- a/src/TextMetrics.cpp +++ b/src/TextMetrics.cpp @@ -1896,6 +1896,13 @@ int TextMetrics::leftMargin(int max_width, if (newpar != pit_type(pars.size())) { if (pars[newpar].layout().isEnvironment()) { l_margin = leftMargin(max_width, newpar); + // Remove the parindent that has been added + // if the paragraph was empty. + if (pars[newpar].empty()) { + docstring pi = pars[newpar].layout().parindent; + l_margin -= theFontMetrics( + buffer.params().getFont()).signedWidth(pi); + } } if (tclass.isDefaultLayout(par.layout()) || tclass.isPlainLayout(par.layout())) { -- 2.39.2