X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetMathChar.cpp;h=f1e21131e10ef7e06957f7c68d61502ea8368b92;hb=12314897982e07afd8926c997f66d7bb08e7e1fd;hp=14060f37ac53094d270fa4a8927475f1100eaa25;hpb=b9765984c0e2d38b251b765cabfc9d23bf957a7a;p=lyx.git diff --git a/src/mathed/InsetMathChar.cpp b/src/mathed/InsetMathChar.cpp index 14060f37ac..f1e21131e1 100644 --- a/src/mathed/InsetMathChar.cpp +++ b/src/mathed/InsetMathChar.cpp @@ -26,8 +26,6 @@ namespace lyx { -using std::auto_ptr; - extern bool has_math_fonts; namespace { @@ -52,13 +50,13 @@ InsetMathChar::InsetMathChar(char_type c) -auto_ptr InsetMathChar::doClone() const +Inset * InsetMathChar::clone() const { - return auto_ptr(new InsetMathChar(*this)); + return new InsetMathChar(*this); } -bool InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const +void InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const { #if 1 if (char_ == '=' && has_math_fonts) { @@ -68,7 +66,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, Font::UP_SHAPE); + ShapeChanger dummy(mi.base.font, UP_SHAPE); dim = theFontMetrics(mi.base.font).dimension(char_); } else { frontend::FontMetrics const & fm = theFontMetrics(mi.base.font); @@ -87,12 +85,8 @@ 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; + // Cache the inset dimension. + setDimCache(mi, dim); } @@ -112,7 +106,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, Font::UP_SHAPE); + ShapeChanger dummy(pi.base.font, UP_SHAPE); pi.draw(x, y, char_); } else { pi.draw(x, y, char_);