bool nsMathMLmoFrame::UseMathMLChar() { return (NS_MATHML_OPERATOR_GET_FORM(mFlags) && NS_MATHML_OPERATOR_IS_MUTABLE(mFlags)) || NS_MATHML_OPERATOR_IS_CENTERED(mFlags); }
static uint32_t GetStretchHint(nsOperatorFlags aFlags, nsPresentationData aPresentationData, bool aIsVertical) { uint32_t stretchHint = NS_STRETCH_NONE; // See if it is okay to stretch, // starting from what the Operator Dictionary said if (NS_MATHML_OPERATOR_IS_MUTABLE(aFlags)) { // set the largeop or largeopOnly flags to suitably cover all the // 8 possible cases depending on whether displaystyle, largeop, // stretchy are true or false (see bug 69325). // . largeopOnly is taken if largeop=true and stretchy=false // . largeop is taken if largeop=true and stretchy=true if (NS_MATHML_IS_DISPLAYSTYLE(aPresentationData.flags) && NS_MATHML_OPERATOR_IS_LARGEOP(aFlags)) { stretchHint = NS_STRETCH_LARGEOP; // (largeopOnly, not mask!) if (NS_MATHML_OPERATOR_IS_INTEGRAL(aFlags)) { stretchHint |= NS_STRETCH_INTEGRAL; } if (NS_MATHML_OPERATOR_IS_STRETCHY(aFlags)) { stretchHint |= NS_STRETCH_NEARER | NS_STRETCH_LARGER; } } else if(NS_MATHML_OPERATOR_IS_STRETCHY(aFlags)) { if (aIsVertical) { // TeX hint. Can impact some sloppy markups missing <mrow></mrow> stretchHint = NS_STRETCH_NEARER; } else { stretchHint = NS_STRETCH_NORMAL; } } // else if the stretchy and largeop attributes have been disabled, // the operator is not mutable } return stretchHint; }