void RowPainter::paintInset(Inset const * inset, pos_type const pos)
{
- Font font = text_.getFont(pi_.base.bv->buffer(), par_, pos);
+ Font font = text_metrics_.getDisplayFont(pit_, pos);
BOOST_ASSERT(inset);
// FIXME: We should always use font, see documentation of
if (!Encodings::isComposeChar_hebrew(c)) {
if (isPrintableNonspace(c)) {
int const width2 = pm_.singleWidth(i,
- text_.getFont(pi_.base.bv->buffer(), par_, i));
+ text_metrics_.getDisplayFont(pit_, i));
dx = (c == 0x05e8 || // resh
c == 0x05d3) // dalet
? width2 - width
if (!Encodings::isComposeChar_arabic(c)) {
if (isPrintableNonspace(c)) {
int const width2 = pm_.singleWidth(i,
- text_.getFont(pi_.base.bv->buffer(), par_, i));
+ text_metrics_.getDisplayFont(pit_, i));
dx = (width2 - width) / 2;
}
break;
void RowPainter::paintFromPos(pos_type & vpos)
{
pos_type const pos = bidi_.vis2log(vpos);
- Font orig_font = text_.getFont(pi_.base.bv->buffer(), par_, pos);
+ Font orig_font = text_metrics_.getDisplayFont(pit_, pos);
double const orig_x = x_;
// usual characters, no insets
if (start == end || !par_.isChanged(start, end))
return;
- int const height = text_.isLastRow(pit_, row_)
+ int const height = text_metrics_.isLastRow(pit_, row_)
? row_.ascent()
: row_.height();
return;
depth_type prev_depth = 0;
- if (!text_.isFirstRow(pit_, row_)) {
+ if (!text_metrics_.isFirstRow(pit_, row_)) {
pit_type pit2 = pit_;
if (row_.pos() == 0)
--pit2;
}
depth_type next_depth = 0;
- if (!text_.isLastRow(pit_, row_)) {
+ if (!text_metrics_.isLastRow(pit_, row_)) {
pit_type pit2 = pit_;
if (row_.endpos() >= pars_[pit2].size())
++pit2;
// Use font span to speed things up, see below
FontSpan font_span;
Font font;
- Buffer const & buffer = pi_.base.bv->buffer();
// If the last logical character is a separator, don't paint it, unless
// it's in the last row of a paragraph; see skipped_sep_vpos declaration
// Use font span to speed things up, see above
if (vpos < font_span.first || vpos > font_span.last) {
font_span = par_.fontSpan(vpos);
- font = text_.getFont(buffer, par_, vpos);
+ font = text_metrics_.getDisplayFont(pit_, vpos);
}
const int width_pos = pm_.singleWidth(pos, font);
++vpos;
} else if (par_.isSeparator(pos)) {
- Font orig_font = text_.getFont(buffer, par_, pos);
+ Font orig_font = text_metrics_.getDisplayFont(pit_, pos);
double const orig_x = x_;
x_ += width_pos;
if (pos >= body_pos)