]> git.lyx.org Git - features.git/commitdiff
Fix another glitch with on-screen indentation.
authorEnrico Forestieri <forenr@lyx.org>
Thu, 22 May 2014 21:47:38 +0000 (23:47 +0200)
committerEnrico Forestieri <forenr@lyx.org>
Thu, 22 May 2014 21:58:23 +0000 (23:58 +0200)
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

index 226f842081b99a9705188fda1aec7f28312aeb3f..de414ea44a5840bdbe6b121b8672bf70d463a68a 100644 (file)
@@ -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())) {