Fix menu to not rerender if no typesetting has occurred. (mathjax/MathJax#3167) #1044
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If the MathJax configuration includes
startup {typeset: false}
and also has menu settings that require loading extensions (e.g., if assistive-mml is on) or the user has set the menu so that something needs to be loaded (e.g., the renderer has been changed in the contextual menu), then the math will be typeset despite thetypeset: false
setting (because the Menu code will think a pre-render is necessary because of the menu settings).This PR adds a
rerenderPromise
to thets/components/startup.ts
file that is initiallynull
(meaning no typesetting has occurred), and is set to theMathJax.startup.promise
once typesetting has been requested. That lets the menu code determine if a re-render is needed (i.e., typesetting has already occurred), and gives it a promise to use to queue itsrerender
action so as to synchronize with other typesetting actions.Resolves issue mathjax/MathJax#3167.