mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +00:00
Remove indentation on screen after a plain separator inset
Fixes bug #12700.
This commit is contained in:
parent
5ad6cbb1d8
commit
f24bb4a919
@ -35,6 +35,7 @@
|
||||
#include "TextClass.h"
|
||||
#include "VSpace.h"
|
||||
|
||||
#include "insets/InsetSeparator.h"
|
||||
#include "insets/InsetText.h"
|
||||
|
||||
#include "mathed/MacroTable.h"
|
||||
@ -1792,11 +1793,13 @@ int TextMetrics::leftMargin(pit_type const pit, pos_type const pos) const
|
||||
}
|
||||
}
|
||||
|
||||
// This happens after sections or environments in standard classes.
|
||||
// We have to check the previous layout at same depth.
|
||||
// Check for reasons to remove indentation.
|
||||
// First, at document level.
|
||||
if (buffer.params().paragraph_separation ==
|
||||
BufferParams::ParagraphSkipSeparation)
|
||||
parindent.erase();
|
||||
// This happens after sections or environments in standard classes.
|
||||
// We have to check the previous layout at same depth.
|
||||
else if (pit > 0 && pars[pit - 1].getDepth() >= par.getDepth()) {
|
||||
pit_type prev = text_->depthHook(pit, par.getDepth());
|
||||
if (par.layout() == pars[prev].layout()) {
|
||||
@ -1806,6 +1809,15 @@ int TextMetrics::leftMargin(pit_type const pit, pos_type const pos) const
|
||||
} else if (pars[prev].layout().nextnoindent)
|
||||
parindent.erase();
|
||||
}
|
||||
// The previous paragraph may have ended with a separator inset.
|
||||
if (pit > 0) {
|
||||
Paragraph const & ppar = pars[pit - 1];
|
||||
if (ppar.size() > 0) {
|
||||
auto * in = dynamic_cast<InsetSeparator const *>(ppar.getInset(ppar.size() - 1));
|
||||
if (in != nullptr && in->nextnoindent())
|
||||
parindent.erase();
|
||||
}
|
||||
}
|
||||
|
||||
FontInfo const labelfont = text_->labelFont(par);
|
||||
FontMetrics const & lfm = theFontMetrics(labelfont);
|
||||
|
@ -66,6 +66,8 @@ public:
|
||||
}
|
||||
///
|
||||
int rowFlags() const override { return BreakAfter | Flush; }
|
||||
///
|
||||
bool nextnoindent() const { return params_.kind == InsetSeparatorParams::PLAIN; }
|
||||
private:
|
||||
///
|
||||
InsetCode lyxCode() const override { return SEPARATOR_CODE; }
|
||||
|
Loading…
Reference in New Issue
Block a user