Adds handling for pt and unitless font size specs

This commit is contained in:
jahorton 2019-09-03 10:51:14 +07:00
parent 6b9f2b5578
commit f63ff5f151

View file

@ -374,11 +374,22 @@ namespace com.keyman {
} else if(fs.indexOf('px') != -1) {
val = parseFloat(fs.substr(0, fs.indexOf('px')));
return {val: val, absolute: true};
} else if(fs.indexOf('pt') != -1) {
// 16 px ~= 12 pt.
// Reference: https://kyleschaeffer.com/css-font-size-em-vs-px-vs-pt-vs-percent
val = parseFloat(fs.substr(0, fs.indexOf('pt')));
return {val: (4 * val / 3), absolute: true};
} else if(fs.indexOf('%') != -1) {
val = parseFloat(fs.substr(0, fs.indexOf('%')));
return {val: val/100, absolute: false};
} else if(!isNaN(val = Number(fs))) {
// Note: this one is NOT natively handled by browsers!
// We'll treat it as if it were 'pt', since that's likely the user's
// most famiilar font size unit.
return {val: (4 * val / 3), absolute: true};
} else {
// Cannot parse.
console.error("Could not properly parse specified fontsize info: '" + fs + "'.");
return null;
}
}