mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
Fix bug #5167: Correctly paint special characters in InsetMathFont
When using, e.g., a 'mathcal' inset in math, the inline completion and other special characters like '\#', '{..}' are are painted in the 'mathcal' font as well. This is overcome by setting the mathnormal font before painted these characters.
This commit is contained in:
parent
b0b8e5f54c
commit
6377296492
@ -48,7 +48,9 @@ void InsetMathBrace::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
{
|
||||
Dimension dim0;
|
||||
cell(0).metrics(mi, dim0);
|
||||
Dimension t = theFontMetrics(mi.base.font).dimension('{');
|
||||
FontInfo font = mi.base.font;
|
||||
augmentFont(font, from_ascii("mathnormal"));
|
||||
Dimension t = theFontMetrics(font).dimension('{');
|
||||
dim.asc = max(dim0.asc, t.asc);
|
||||
dim.des = max(dim0.des, t.des);
|
||||
dim.wid = dim0.width() + 2 * t.wid;
|
||||
@ -59,6 +61,7 @@ void InsetMathBrace::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
void InsetMathBrace::draw(PainterInfo & pi, int x, int y) const
|
||||
{
|
||||
FontInfo font = pi.base.font;
|
||||
augmentFont(font, from_ascii("mathnormal"));
|
||||
font.setShape(UP_SHAPE);
|
||||
font.setColor(Color_latex);
|
||||
Dimension t = theFontMetrics(font).dimension('{');
|
||||
|
@ -280,7 +280,9 @@ void MathData::metrics(MetricsInfo & mi, Dimension & dim) const
|
||||
if (completion.length() == 0)
|
||||
continue;
|
||||
|
||||
dim.wid += mathed_string_width(mi.base.font, completion);
|
||||
FontInfo font = mi.base.font;
|
||||
augmentFont(font, from_ascii("mathnormal"));
|
||||
dim.wid += mathed_string_width(font, completion);
|
||||
}
|
||||
// Cache the dimension.
|
||||
mi.base.bv->coordCache().arrays().add(this, dim);
|
||||
@ -328,6 +330,7 @@ void MathData::draw(PainterInfo & pi, int x, int y) const
|
||||
if (completion.length() == 0)
|
||||
continue;
|
||||
FontInfo f = pi.base.font;
|
||||
augmentFont(f, from_ascii("mathnormal"));
|
||||
|
||||
// draw the unique and the non-unique completion part
|
||||
// Note: this is not time-critical as it is
|
||||
|
@ -490,13 +490,16 @@ void mathed_draw_deco(PainterInfo & pi, int x, int y, int w, int h,
|
||||
|
||||
void metricsStrRedBlack(MetricsInfo & mi, Dimension & dim, docstring const & str)
|
||||
{
|
||||
mathed_string_dim(mi.base.font, str, dim);
|
||||
FontInfo font = mi.base.font;
|
||||
augmentFont(font, from_ascii("mathnormal"));
|
||||
mathed_string_dim(font, str, dim);
|
||||
}
|
||||
|
||||
|
||||
void drawStrRed(PainterInfo & pi, int x, int y, docstring const & str)
|
||||
{
|
||||
FontInfo f = pi.base.font;
|
||||
augmentFont(f, from_ascii("mathnormal"));
|
||||
f.setColor(Color_latex);
|
||||
pi.pain.text(x, y, str, f);
|
||||
}
|
||||
@ -505,6 +508,7 @@ void drawStrRed(PainterInfo & pi, int x, int y, docstring const & str)
|
||||
void drawStrBlack(PainterInfo & pi, int x, int y, docstring const & str)
|
||||
{
|
||||
FontInfo f = pi.base.font;
|
||||
augmentFont(f, from_ascii("mathnormal"));
|
||||
f.setColor(Color_foreground);
|
||||
pi.pain.text(x, y, str, f);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user