#include "CoordCache.h"
#include "Cursor.h"
#include "CutAndPaste.h"
-#include "support/debug.h"
#include "FontIterator.h"
#include "FuncRequest.h"
#include "InsetList.h"
#include "frontends/FontMetrics.h"
#include "frontends/Painter.h"
+#include "support/debug.h"
+
using namespace std;
namespace lyx {
int TextMetrics::rightMargin(ParagraphMetrics const & pm) const
{
- return main_text_? pm.rightMargin(bv_->buffer()) : 0;
+ return main_text_? pm.rightMargin(*bv_) : 0;
}
int TextMetrics::rightMargin(pit_type const pit) const
{
- return main_text_? par_metrics_[pit].rightMargin(bv_->buffer()) : 0;
+ return main_text_? par_metrics_[pit].rightMargin(*bv_) : 0;
}
<< " the context is better then.");
updateLabels(bv_->buffer());
parPos = text_->macrocontextPosition();
- parPos.pit() = pit;
BOOST_ASSERT(!parPos.empty());
+ parPos.pit() = pit;
}
// redo insets
align = par.params().align();
// Display-style insets should always be on a centred row
- // The test on par.size() is to catch zero-size pars, which
- // would trigger the assert in Paragraph::getInset().
- //inset = par.size() ? par.getInset(row.pos()) : 0;
- if (row.pos() < par.size() && par.isInset(row.pos())) {
- switch(par.getInset(row.pos())->display()) {
+ if (Inset const * inset = par.getInset(row.pos())) {
+ switch (inset->display()) {
case Inset::AlignLeft:
align = LYX_ALIGN_BLOCK;
break;
point = i + 1;
break;
}
+ Inset const * inset = 0;
// Break before...
if (i + 1 < end) {
- if (par.isInset(i + 1) && par.getInset(i + 1)->display()) {
+ if ((inset = par.getInset(i + 1)) && inset->display()) {
point = i + 1;
break;
}
// ...and after.
- if (par.isInset(i) && par.getInset(i)->display()) {
+ if ((inset = par.getInset(i)) && inset->display()) {
point = i + 1;
break;
}
}
- if (!par.isInset(i) || par.getInset(i)->isChar()) {
+ inset = par.getInset(i);
+ if (!inset || inset->isChar()) {
// some insets are line separators too
if (par.isLineSeparator(i)) {
// register breakpoint:
int l_margin = 0;
if (text_->isMainText(buffer))
- l_margin += changebarMargin();
+ l_margin += bv_->leftMargin();
l_margin += theFontMetrics(buffer.params().getFont()).signedWidth(
tclass.leftmargin());
if (pars[newpar].layout()->isEnvironment()) {
l_margin = leftMargin(max_width, newpar);
}
+ //FIXME Should this check for emptyLayout() as well?
if (par.layout() == tclass.defaultLayout()) {
if (pars[newpar].params().noindent())
parindent.erase();
|| layout->labeltype == LABEL_TOP_ENVIRONMENT
|| layout->labeltype == LABEL_CENTERED_TOP_ENVIRONMENT
|| (layout->labeltype == LABEL_STATIC
- && layout->latextype == LATEX_ENVIRONMENT
+ && layout->latextype == LATEX_ENVIRONMENT
&& !isFirstInSequence(pit, pars)))
&& align == LYX_ALIGN_BLOCK
&& !par.params().noindent()
&& !(!par.empty()
&& par.isInset(pos)
&& par.getInset(pos)->display())
- && (par.layout() != tclass.defaultLayout()
+ && (par.layout() != tclass.defaultLayout() //should this check emptyLayout()?
|| buffer.params().paragraph_separation ==
BufferParams::PARSEP_INDENT))
{