void InsetCaption::metrics(MetricsInfo & mi, Dimension & dim) const
{
+ Font tmpfont = mi.base.font;
+ mi.base.font = mi.base.bv->buffer().params().getFont();
labelwidth_ = theFontMetrics(mi.base.font).width(full_label_);
// add some space to separate the label from the inset text
labelwidth_ += 2 * TEXT_TO_INSET_OFFSET;
// Correct for button and label width
mi.base.textwidth -= dim.wid;
InsetText::metrics(mi, textdim);
+ mi.base.font = tmpfont;
mi.base.textwidth += dim.wid;
dim.des = std::max(dim.des - textdim.asc + dim.asc, textdim.des);
dim.asc = textdim.asc;
// Answer: the text inset (in buffer_funcs.cpp: setCaption).
+ Font tmpfont = pi.base.font;
+ pi.base.font = pi.base.bv->buffer().params().getFont();
pi.pain.text(x, y, full_label_, pi.base.font);
InsetText::draw(pi, x + labelwidth_, y);
+ pi.base.font = tmpfont;
}
os << code
<< *delimiter;
} else {
- docstring const caption = getCaption(buf, runparams);
+ OutputParams rp = runparams;
+ // FIXME: the line below would fix bug 4182,
+ // but real_current_font moved to cursor.
+ //rp.local_font = &text_.real_current_font;
+ rp.moving_arg = true;
+ docstring const caption = getCaption(buf, rp);
+ runparams.encoding = rp.encoding;
if (param_string.empty() && caption.empty())
os << "\n\\begingroup\n\\inputencoding{latin1}\n\\begin{lstlisting}\n";
else {