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
font;
pi_.ltr_pos = (bidi_.level(pos) % 2 == 0);
pi_.erased_ = erased_ || par_.isDeleted(pos);
+ pi_.base.bv->coordCache().insets().add(inset, int(x_), yo_);
// insets are painted completely. Recursive
inset->drawSelection(pi_, int(x_), yo_);
inset->draw(pi_, int(x_), yo_);
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
// 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)