mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-23 21:01:08 +00:00
4827451a48
Currently, nsMathMLContainerFrame::AttributeChanged always force a reflow. This patch removes that behavior tweaks the following derived classes: - menclose: Don't mark intrinsic size of descendants dirty, since the notation is added around the children, only affecting the element's metrics. - mfrac: Don't mark intrinsic size dirty for the linethickness attribute, since it only affects vertical metrics. - mo: Rebuild 'automatic' data and relayout the entire embellished operator hierarchy for all operator properties. I haven't checked the details of the MathML 'automatic' data, so it may be a bit too aggressive. But at least a reflow is necessary. - mspace/mpadded: Only mark intrinsic size dirty for the element and ancestors, and only for attributes affecting vertical metrics. Also remove `InvalidateFrame()` call since we don't have any display item. - mtable: Don't force reflow or data rebuild when displaystyle changes. This was probably needed before displaystyle was re-implemented as an attribute mapped to the math-style CSS property. There is at least one dynamic test for each of the MathML attributes affecting layout and they don't regress after this patch: https://bugzilla.mozilla.org/show_bug.cgi?id=1918308#c0 Differential Revision: https://phabricator.services.mozilla.com/D221925 |
||
---|---|---|
.. | ||
tests | ||
jar.mn | ||
mathfont.properties | ||
mathfontSTIXGeneral.properties | ||
mathfontUnicode.properties | ||
mathml.css | ||
moz.build | ||
nsIMathMLFrame.h | ||
nsMathMLAtoms.h | ||
nsMathMLChar.cpp | ||
nsMathMLChar.h | ||
nsMathMLContainerFrame.cpp | ||
nsMathMLContainerFrame.h | ||
nsMathMLFrame.cpp | ||
nsMathMLFrame.h | ||
nsMathMLmencloseFrame.cpp | ||
nsMathMLmencloseFrame.h | ||
nsMathMLmfracFrame.cpp | ||
nsMathMLmfracFrame.h | ||
nsMathMLmmultiscriptsFrame.cpp | ||
nsMathMLmmultiscriptsFrame.h | ||
nsMathMLmoFrame.cpp | ||
nsMathMLmoFrame.h | ||
nsMathMLmpaddedFrame.cpp | ||
nsMathMLmpaddedFrame.h | ||
nsMathMLmrootFrame.cpp | ||
nsMathMLmrootFrame.h | ||
nsMathMLmrowFrame.cpp | ||
nsMathMLmrowFrame.h | ||
nsMathMLmspaceFrame.cpp | ||
nsMathMLmspaceFrame.h | ||
nsMathMLmsqrtFrame.cpp | ||
nsMathMLmsqrtFrame.h | ||
nsMathMLmtableFrame.cpp | ||
nsMathMLmtableFrame.h | ||
nsMathMLmunderoverFrame.cpp | ||
nsMathMLmunderoverFrame.h | ||
nsMathMLOperators.cpp | ||
nsMathMLOperators.h | ||
nsMathMLParts.h | ||
nsMathMLTokenFrame.cpp | ||
nsMathMLTokenFrame.h | ||
operatorDictionary.xsl | ||
updateOperatorDictionary.pl |