commit 2de09d8121473a038154beb47f48555956804eed
parent 2c5ecf630336caa27c8c2c2bbabdcf442ac4ae61
Author: Davide P. Cervone <dpvc@union.edu>
Date: Fri, 21 Feb 2014 16:21:09 -0500
Add a check if defaultEm is zero, and retry after a delay if it is. WebKit seems to have this happen sometimes when web fonts are used for the page (though hard to reproduce). Resolves issue #576.
Diffstat:
1 file changed, 17 insertions(+), 0 deletions(-)
diff --git a/unpacked/jax/output/HTML-CSS/jax.js b/unpacked/jax/output/HTML-CSS/jax.js
@@ -450,6 +450,23 @@
//
InitializeHTML: function () {
this.PreloadWebFonts();
+ this.getDefaultExEm();
+ //
+ // If the defaultEm size is zero, it might be that a web font hasn't
+ // arrived yet, so try to wait for it, but don't wait too long.
+ //
+ if (this.defaultEm) return;
+ var ready = MathJax.Callback();
+ AJAX.timer.start(AJAX,function (check) {
+ if (check.time(ready)) {HUB.signal.Post("HTML-CSS Jax - no default em size"); return}
+ HTMLCSS.getDefaultExEm();
+ if (HTMLCSS.defaultEm) {ready()} else {setTimeout(check,check.delay)}
+ },this.defaultEmDelay,this.defaultEmTimeout);
+ return ready;
+ },
+ defaultEmDelay: 100, // initial delay when checking for defaultEm
+ defaultEmTimeout: 1000, // when to stop looking for defaultEm
+ getDefaultExEm: function () {
//
// Get the default sizes (need styles in place to do this)
//