diff --git a/src/MetricsInfo.cpp b/src/MetricsInfo.cpp index 8fe03ba441..714e8ad750 100644 --- a/src/MetricsInfo.cpp +++ b/src/MetricsInfo.cpp @@ -11,6 +11,8 @@ #include #include "MetricsInfo.h" +#include "BufferView.h" +#include "Cursor.h" #include "LyXRC.h" @@ -61,7 +63,8 @@ Changer MetricsBase::changeFontSet(string const & name) string const oldname = fontname; fontname = name; if (isMathFont(name) || isMathFont(oldname)) - font = sane_font; + font = isTextFont(name) ? bv->cursor().getFont().fontInfo() + : sane_font; augmentFont(font, name); font.setSize(rc->old.font.size()); font.setStyle(rc->old.font.style()); diff --git a/src/mathed/InsetMathBox.cpp b/src/mathed/InsetMathBox.cpp index afaadeb83a..6feddf9cdd 100644 --- a/src/mathed/InsetMathBox.cpp +++ b/src/mathed/InsetMathBox.cpp @@ -146,14 +146,14 @@ void InsetMathBox::htmlize(HtmlStream & ms) const void InsetMathBox::metrics(MetricsInfo & mi, Dimension & dim) const { - Changer dummy = mi.base.changeFontSet("textnormal"); + Changer dummy = mi.base.changeFontSet("text"); cell(0).metrics(mi, dim); } void InsetMathBox::draw(PainterInfo & pi, int x, int y) const { - Changer dummy = pi.base.changeFontSet("textnormal"); + Changer dummy = pi.base.changeFontSet("text"); cell(0).draw(pi, x, y); } @@ -196,7 +196,7 @@ InsetMathFBox::InsetMathFBox(Buffer * buf) void InsetMathFBox::metrics(MetricsInfo & mi, Dimension & dim) const { - Changer dummy = mi.base.changeFontSet("textnormal"); + Changer dummy = mi.base.changeFontSet("text"); cell(0).metrics(mi, dim); // 1 pixel space, 1 frame, 1 space dim.wid += 2 * 3; @@ -210,7 +210,7 @@ void InsetMathFBox::draw(PainterInfo & pi, int x, int y) const Dimension const dim = dimension(*pi.base.bv); pi.pain.rectangle(x + 1, y - dim.ascent() + 1, dim.width() - 2, dim.height() - 2, Color_foreground); - Changer dummy = pi.base.changeFontSet("textnormal"); + Changer dummy = pi.base.changeFontSet("text"); cell(0).draw(pi, x + 3, y); } @@ -281,7 +281,7 @@ InsetMathMakebox::InsetMathMakebox(Buffer * buf, bool framebox) void InsetMathMakebox::metrics(MetricsInfo & mi, Dimension & dim) const { - Changer dummy = mi.base.changeFontSet("textnormal"); + Changer dummy = mi.base.changeFontSet("text"); Dimension wdim; static docstring bracket = from_ascii("["); @@ -312,7 +312,7 @@ void InsetMathMakebox::metrics(MetricsInfo & mi, Dimension & dim) const void InsetMathMakebox::draw(PainterInfo & pi, int x, int y) const { - Changer dummy = pi.base.changeFontSet("textnormal"); + Changer dummy = pi.base.changeFontSet("text"); BufferView const & bv = *pi.base.bv; int w = mathed_char_width(pi.base.font, '[');