Fix a small issue in the waiting for font to load code

This commit is contained in:
Vivien Nicolas 2011-07-02 01:01:55 +02:00
parent d10cf7c929
commit 3dcf65d9df

View File

@ -38,11 +38,11 @@ var kDisableFonts = false;
var Fonts = (function Fonts() { var Fonts = (function Fonts() {
var kScalePrecision = 40; var kScalePrecision = 40;
var fonts = Object.create(null); var fonts = Object.create(null);
if (!isWorker) { if (!isWorker) {
var ctx = document.createElement("canvas").getContext("2d"); var ctx = document.createElement("canvas").getContext("2d");
ctx.scale(1 / kScalePrecision, 1); ctx.scale(1 / kScalePrecision, 1);
} }
function Font(name, data, properties) { function Font(name, data, properties) {
@ -77,9 +77,6 @@ var Fonts = (function Fonts() {
measureCache = sizes[size] = Object.create(null); measureCache = sizes[size] = Object.create(null);
ctx.font = (size * kScalePrecision) + 'px "' + fontName + '"'; ctx.font = (size * kScalePrecision) + 'px "' + fontName + '"';
}, },
getActive: function fonts_getActive() {
return current;
},
charsToUnicode: function fonts_chars2Unicode(chars) { charsToUnicode: function fonts_chars2Unicode(chars) {
if (!charsCache) if (!charsCache)
return chars; return chars;
@ -477,10 +474,11 @@ var Font = (function () {
startCount += string16(start); startCount += string16(start);
endCount += string16(end); endCount += string16(end);
idDeltas += string16(delta); idDeltas += string16(delta);
idRangeOffsets += string16(0); idRangeOffsets += string16(0);
for (var j = 0; j < range.length; j++) for (var j = start; j < end; j++) {
glyphsIds += String.fromCharCode(range[j]); glyphsIds += string16(j);
}
} }
startCount += "\xFF\xFF"; startCount += "\xFF\xFF";
@ -1034,8 +1032,9 @@ var Font = (function () {
// different once the real font has loaded // different once the real font has loaded
var textWidth = ctx.measureText(testString).width; var textWidth = ctx.measureText(testString).width;
var start = Date.now();
var interval = window.setInterval(function canvasInterval(self) { var interval = window.setInterval(function canvasInterval(self) {
this.start = this.start || Date.now(); this.start = start;
ctx.font = "bold italic 20px " + fontName + ", Symbol, Arial"; ctx.font = "bold italic 20px " + fontName + ", Symbol, Arial";
// For some reasons the font has not loaded, so mark it loaded for the // For some reasons the font has not loaded, so mark it loaded for the