sel_beg(-1), sel_end(-1),
begin_margin_sel(false), end_margin_sel(false),
changed_(false), crc_(0),
- pit_(0), pos_(0), end_(0), right_boundary_(false)
+ pit_(0), pos_(0), end_(0), right_boundary_(false), flushed_(false)
{}
void right_boundary(bool b) { right_boundary_ = b; }
///
bool right_boundary() const { return right_boundary_; }
+ ///
+ void flushed(bool b) { flushed_ = b; }
+ ///
+ bool flushed() const { return flushed_; }
///
Dimension const & dimension() const { return dim_; }
pos_type pos_;
/// one behind last pos covered by this row
pos_type end_;
- // Is there is a boundary at the end of the row (display inset...)
+ // Is there a boundary at the end of the row (display inset...)
bool right_boundary_;
+ // Shall the row be flushed when it is supposed to be justified?
+ bool flushed_;
/// Row dimension.
Dimension dim_;
};
// not justify stuff, then don't stretch.
// A forced block alignment can only be overridden the 'no
// justification on screen' setting.
- if (((row.right_boundary() || row.endpos() == par.size())
- && !forced_block)
+ if ((row.flushed() && !forced_block)
|| !bv_->buffer().params().justification)
align = text_->isRTL(par) ? LYX_ALIGN_RIGHT : LYX_ALIGN_LEFT;
}
&& inset->display())
|| (!row.empty() && row.back().inset
&& row.back().inset->display())) {
- row.right_boundary(true);
+ row.flushed(true);
need_new_row = par.isNewline(i);
++i;
break;
// of success, reset indication that the row was broken abruptly.
int const next_width = max_width_ - leftMargin(max_width_, row.pit(), row.endpos())
- rightMargin(row.pit());
- if (row.shortenIfNeeded(body_pos, width, next_width))
- row.right_boundary(!row.empty() && row.back().endpos == row.endpos());
+
+ row.shortenIfNeeded(body_pos, width, next_width);
+ row.right_boundary(!row.empty() && row.endpos() < end
+ && row.back().endpos == row.endpos());
+ // Last row in paragraph is flushed
+ if (row.endpos() == end)
+ row.flushed(true);
// make sure that the RTL elements are in reverse ordering
row.reverseRTL(is_rtl);
- Fix wrong on-screen text layout where a word would be alone on a
line.
+- Fix wrong on-screen flushing of a row that was cut after an hyphen.
+
- Fix crash when the document contains Unicode line-breaking characters.
- Allow using colors supported by xcolor inside mathed (bug 10417).