X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetMathChar.cpp;h=14060f37ac53094d270fa4a8927475f1100eaa25;hb=e54ae72e5fac6f750c3f7972c74bb42b57f3a049;hp=347b82da218a33a2896212d4c7ce1dd9d9e972bc;hpb=00e305c9d9bd8b0ff54b6c58adb6192d5934ed60;p=lyx.git diff --git a/src/mathed/InsetMathChar.cpp b/src/mathed/InsetMathChar.cpp index 347b82da21..14060f37ac 100644 --- a/src/mathed/InsetMathChar.cpp +++ b/src/mathed/InsetMathChar.cpp @@ -17,9 +17,10 @@ #include "debug.h" #include "Dimension.h" -#include "support/lstrings.h" #include "TextPainter.h" +#include "support/lstrings.h" + #include "frontends/FontMetrics.h" @@ -51,20 +52,14 @@ InsetMathChar::InsetMathChar(char_type c) -auto_ptr InsetMathChar::doClone() const +auto_ptr InsetMathChar::doClone() const { - return auto_ptr(new InsetMathChar(*this)); + return auto_ptr(new InsetMathChar(*this)); } bool InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const { - if (mi.base.font == font_cache_) { - dim = dim_; - return false; - } - font_cache_ = mi.base.font; - #if 1 if (char_ == '=' && has_math_fonts) { FontSetChanger dummy(mi.base, "cmr"); @@ -73,7 +68,7 @@ bool InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const FontSetChanger dummy(mi.base, "cmm"); dim = theFontMetrics(mi.base.font).dimension(char_); } else if (!slanted(char_) && mi.base.fontname == "mathnormal") { - ShapeChanger dummy(mi.base.font, LyXFont::UP_SHAPE); + ShapeChanger dummy(mi.base.font, Font::UP_SHAPE); dim = theFontMetrics(mi.base.font).dimension(char_); } else { frontend::FontMetrics const & fm = theFontMetrics(mi.base.font); @@ -92,6 +87,10 @@ bool InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const dim.wid += 2 * theFontMetrics(font_).width(' '); lyxerr << "InsetMathChar::metrics: " << dim << endl; #endif + + if (dim_ == dim) + return false; + dim_ = dim; return true; } @@ -113,7 +112,7 @@ void InsetMathChar::draw(PainterInfo & pi, int x, int y) const FontSetChanger dummy(pi.base, "cmm"); pi.draw(x, y, char_); } else if (!slanted(char_) && pi.base.fontname == "mathnormal") { - ShapeChanger dummy(pi.base.font, LyXFont::UP_SHAPE); + ShapeChanger dummy(pi.base.font, Font::UP_SHAPE); pi.draw(x, y, char_); } else { pi.draw(x, y, char_);