X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetMathScript.cpp;h=b5e70fd6313a8eb2600135f16200c01f22ccb2c6;hb=cdc847fd304019a19425a0d5d9d42a556a937097;hp=22a226d6ad9823446fe42dadb5afe2e2a1dec50c;hpb=eadc55b8b38a489202e2e168521578dae119fd59;p=lyx.git diff --git a/src/mathed/InsetMathScript.cpp b/src/mathed/InsetMathScript.cpp index 22a226d6ad..b5e70fd631 100644 --- a/src/mathed/InsetMathScript.cpp +++ b/src/mathed/InsetMathScript.cpp @@ -276,13 +276,16 @@ int InsetMathScript::nker(BufferView const * bv) const MathClass InsetMathScript::mathClass() const { // FIXME: this is a hack, since the class will not be correct if - // the nucleus has several elements. + // the nucleus has several elements or if the last element is a math macro + // or a macro argument proxy. // The correct implementation would require to linearize the nucleus. if (nuc().empty()) return MC_ORD; - else + else { // return the class of last element since this is the one that counts. - return nuc().back()->mathClass(); + MathClass mc = nuc().back()->mathClass(); + return (mc == MC_UNKNOWN) ? MC_ORD : mc; + } } @@ -334,7 +337,6 @@ void InsetMathScript::metrics(MetricsInfo & mi, Dimension & dim) const dim.des = max(nd, des); } else dim.des = nd; - metricsMarkers(mi, dim); } @@ -354,7 +356,6 @@ void InsetMathScript::draw(PainterInfo & pi, int x, int y) const up().draw(pi, x + dx1(bv), y - dy1(bv)); if (hasDown()) down().draw(pi, x + dx0(bv), y + dy0(bv)); - drawMarkers(pi, x, y); }