char Paragraph::getAlign() const
{
- return params().align();
+ if (params().align() == LYX_ALIGN_LAYOUT)
+ return layout()->align;
+ else
+ return params().align();
}
docstring const getLabelWidthString() const;
///
void setLabelWidthString(docstring const & s);
- ///
+ /// Actual paragraph alignment used
char getAlign() const;
/// The nesting depth of a paragraph
depth_type getDepth() const;
bool cursor_on_row = CursorOnRow(pi, pit, rit, text);
bool in_inset_alone_on_row = innerCursorOnRow(pi, pit, rit,
text);
+ bool leftEdgeFixed =
+ (par.getAlign() == LYX_ALIGN_LEFT ||
+ par.getAlign() == LYX_ALIGN_BLOCK);
// If this is the only object on the row, we can make it wide
//
if (in) {
InsetText * t = const_cast<InsetText *>(in->asTextInset());
if (t)
- t->setWide(in_inset_alone_on_row);
+ t->setWide(in_inset_alone_on_row && leftEdgeFixed);
}
}
// Clear background of this row
// (if paragraph background was not cleared)
if (!repaintAll &&
- (!in_inset_alone_on_row || row_has_changed)) {
+ (!(in_inset_alone_on_row && leftEdgeFixed)
+ || row_has_changed)) {
pi.pain.fillRectangle(x, y - rit->ascent(),
text.maxwidth_, rit->height(),
text.backgroundColor());