mirror of
https://github.com/Hopiu/fabric.js.git
synced 2026-04-14 11:20:59 +00:00
Fix text background not respecting text alignment.
This commit is contained in:
parent
6e8d9da003
commit
e6be74571e
3 changed files with 58 additions and 6 deletions
|
|
@ -1,3 +1,3 @@
|
|||
/*! Fabric.js Copyright 2008-2011, Bitsonnet (Juriy Zaytsev, Maxim Chernyak) */
|
||||
|
||||
var fabric = fabric || { version: "0.4.6" };
|
||||
var fabric = fabric || { version: "0.4.7" };
|
||||
31
dist/all.js
vendored
31
dist/all.js
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*! Fabric.js Copyright 2008-2011, Bitsonnet (Juriy Zaytsev, Maxim Chernyak) */
|
||||
|
||||
var fabric = fabric || { version: "0.4.6" };
|
||||
var fabric = fabric || { version: "0.4.7" };
|
||||
|
||||
(function(){
|
||||
var view = document.defaultView;
|
||||
|
|
@ -767,11 +767,36 @@ Cufon.registerEngine('canvas', (function() {
|
|||
g.save();
|
||||
g.fillStyle = options.backgroundColor;
|
||||
|
||||
var left = 0;
|
||||
var left = 0, lineNum = 0;
|
||||
|
||||
if (options.textAlign === 'right') {
|
||||
g.translate(lineOffsets[lineNum], 0);
|
||||
}
|
||||
else if (options.textAlign === 'center') {
|
||||
g.translate(lineOffsets[lineNum] / 2, 0);
|
||||
}
|
||||
|
||||
for (var i = 0, l = chars.length; i < l; ++i) {
|
||||
if (chars[i] === '\n') {
|
||||
g.translate(-left, -font.ascent - ((font.ascent / 5) * options.lineHeight));
|
||||
|
||||
lineNum++;
|
||||
|
||||
var topOffset = -font.ascent - ((font.ascent / 5) * options.lineHeight);
|
||||
|
||||
if (options.textAlign === 'right') {
|
||||
g.translate(-width, topOffset);
|
||||
g.translate(lineOffsets[lineNum], 0);
|
||||
}
|
||||
else if (options.textAlign === 'center') {
|
||||
g.translate(-left - (lineOffsets[lineNum - 1] / 2), topOffset);
|
||||
g.translate(lineOffsets[lineNum] / 2, 0);
|
||||
}
|
||||
else {
|
||||
g.translate(-left, topOffset);
|
||||
}
|
||||
|
||||
left = 0;
|
||||
|
||||
continue;
|
||||
}
|
||||
var glyph = font.glyphs[chars[i]] || font.missingGlyph;
|
||||
|
|
|
|||
31
lib/cufon.js
31
lib/cufon.js
|
|
@ -792,11 +792,38 @@ Cufon.registerEngine('canvas', (function() {
|
|||
g.save();
|
||||
g.fillStyle = options.backgroundColor;
|
||||
|
||||
var left = 0;
|
||||
var left = 0, lineNum = 0;
|
||||
|
||||
if (options.textAlign === 'right') {
|
||||
g.translate(lineOffsets[lineNum], 0);
|
||||
}
|
||||
else if (options.textAlign === 'center') {
|
||||
g.translate(lineOffsets[lineNum] / 2, 0);
|
||||
}
|
||||
|
||||
for (var i = 0, l = chars.length; i < l; ++i) {
|
||||
if (chars[i] === '\n') {
|
||||
g.translate(-left, -font.ascent - ((font.ascent / 5) * options.lineHeight));
|
||||
|
||||
lineNum++;
|
||||
|
||||
var topOffset = -font.ascent - ((font.ascent / 5) * options.lineHeight);
|
||||
|
||||
if (options.textAlign === 'right') {
|
||||
g.translate(-width, topOffset);
|
||||
g.translate(lineOffsets[lineNum], 0);
|
||||
}
|
||||
else if (options.textAlign === 'center') {
|
||||
// offset to the start of text in previous line AND half of its offset
|
||||
// (essentially moving caret to the left edge of bounding box)
|
||||
g.translate(-left - (lineOffsets[lineNum - 1] / 2), topOffset);
|
||||
g.translate(lineOffsets[lineNum] / 2, 0);
|
||||
}
|
||||
else {
|
||||
g.translate(-left, topOffset);
|
||||
}
|
||||
|
||||
left = 0;
|
||||
|
||||
continue;
|
||||
}
|
||||
var glyph = font.glyphs[chars[i]] || font.missingGlyph;
|
||||
|
|
|
|||
Loading…
Reference in a new issue