mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
Fix bug 4182, partially:
* src/insets/InsetCaption.cpp (draw, metrics): - set correct font for caption in Workarea. * src/insets/insetListings.cpp (latex): - try to set correct font for caption in output (doesn't work yet). git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20472 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
430a18042e
commit
d00ae71b63
@ -127,6 +127,8 @@ void InsetCaption::addToToc(TocList & toclist, Buffer const & buf, ParConstItera
|
|||||||
|
|
||||||
void InsetCaption::metrics(MetricsInfo & mi, Dimension & dim) const
|
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_);
|
labelwidth_ = theFontMetrics(mi.base.font).width(full_label_);
|
||||||
// add some space to separate the label from the inset text
|
// add some space to separate the label from the inset text
|
||||||
labelwidth_ += 2 * TEXT_TO_INSET_OFFSET;
|
labelwidth_ += 2 * TEXT_TO_INSET_OFFSET;
|
||||||
@ -135,6 +137,7 @@ void InsetCaption::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
// Correct for button and label width
|
// Correct for button and label width
|
||||||
mi.base.textwidth -= dim.wid;
|
mi.base.textwidth -= dim.wid;
|
||||||
InsetText::metrics(mi, textdim);
|
InsetText::metrics(mi, textdim);
|
||||||
|
mi.base.font = tmpfont;
|
||||||
mi.base.textwidth += dim.wid;
|
mi.base.textwidth += dim.wid;
|
||||||
dim.des = std::max(dim.des - textdim.asc + dim.asc, textdim.des);
|
dim.des = std::max(dim.des - textdim.asc + dim.asc, textdim.des);
|
||||||
dim.asc = textdim.asc;
|
dim.asc = textdim.asc;
|
||||||
@ -152,8 +155,11 @@ void InsetCaption::draw(PainterInfo & pi, int x, int y) const
|
|||||||
|
|
||||||
// Answer: the text inset (in buffer_funcs.cpp: setCaption).
|
// 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);
|
pi.pain.text(x, y, full_label_, pi.base.font);
|
||||||
InsetText::draw(pi, x + labelwidth_, y);
|
InsetText::draw(pi, x + labelwidth_, y);
|
||||||
|
pi.base.font = tmpfont;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -198,7 +198,13 @@ int InsetListings::latex(Buffer const & buf, odocstream & os,
|
|||||||
os << code
|
os << code
|
||||||
<< *delimiter;
|
<< *delimiter;
|
||||||
} else {
|
} 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())
|
if (param_string.empty() && caption.empty())
|
||||||
os << "\n\\begingroup\n\\inputencoding{latin1}\n\\begin{lstlisting}\n";
|
os << "\n\\begingroup\n\\inputencoding{latin1}\n\\begin{lstlisting}\n";
|
||||||
else {
|
else {
|
||||||
|
Loading…
Reference in New Issue
Block a user