mirror of
https://github.com/konvajs/konva.git
synced 2025-04-05 20:48:28 +08:00
Address PR comments.
This commit is contained in:
parent
5570b4d62b
commit
2ef0a38ef8
@ -78,6 +78,7 @@ var CONTEXT_PROPERTIES = [
|
|||||||
'shadowBlur',
|
'shadowBlur',
|
||||||
'shadowOffsetX',
|
'shadowOffsetX',
|
||||||
'shadowOffsetY',
|
'shadowOffsetY',
|
||||||
|
'letterSpacing',
|
||||||
'lineCap',
|
'lineCap',
|
||||||
'lineDashOffset',
|
'lineDashOffset',
|
||||||
'lineJoin',
|
'lineJoin',
|
||||||
@ -94,8 +95,8 @@ var CONTEXT_PROPERTIES = [
|
|||||||
|
|
||||||
const traceArrMax = 100;
|
const traceArrMax = 100;
|
||||||
|
|
||||||
interface CanvasRenderingContext2DFeatureDetection extends CanvasRenderingContext2D {
|
interface ExtendedCanvasRenderingContext2D extends CanvasRenderingContext2D {
|
||||||
letterSpacing: string | undefined;
|
letterSpacing: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -712,21 +713,6 @@ export class Context {
|
|||||||
translate(x: number, y: number) {
|
translate(x: number, y: number) {
|
||||||
this._context.translate(x, y);
|
this._context.translate(x, y);
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* Set letterSpacing if supported by browser.
|
|
||||||
* @method
|
|
||||||
* @name Konva.Context#trySetLetterSpacing
|
|
||||||
* @returns true if successful, false if not supported.
|
|
||||||
*/
|
|
||||||
trySetLetterSpacing(letterSpacing: number): boolean {
|
|
||||||
var context = this._context as CanvasRenderingContext2DFeatureDetection;
|
|
||||||
var letterSpacingSupported = 'letterSpacing' in context;
|
|
||||||
|
|
||||||
if (letterSpacingSupported) {
|
|
||||||
context.letterSpacing = letterSpacing + "px";
|
|
||||||
}
|
|
||||||
return letterSpacingSupported;
|
|
||||||
}
|
|
||||||
_enableTrace() {
|
_enableTrace() {
|
||||||
var that = this,
|
var that = this,
|
||||||
len = CONTEXT_METHODS.length,
|
len = CONTEXT_METHODS.length,
|
||||||
@ -785,7 +771,7 @@ export class Context {
|
|||||||
|
|
||||||
// supported context properties
|
// supported context properties
|
||||||
type CanvasContextProps = Pick<
|
type CanvasContextProps = Pick<
|
||||||
CanvasRenderingContext2D,
|
ExtendedCanvasRenderingContext2D,
|
||||||
(typeof CONTEXT_PROPERTIES)[number]
|
(typeof CONTEXT_PROPERTIES)[number]
|
||||||
>;
|
>;
|
||||||
|
|
||||||
|
@ -207,7 +207,9 @@ export class Text extends Shape<TextConfig> {
|
|||||||
var lineTranslateX = 0;
|
var lineTranslateX = 0;
|
||||||
var lineTranslateY = 0;
|
var lineTranslateY = 0;
|
||||||
|
|
||||||
context.setAttr('direction', direction);
|
if (direction === RTL) {
|
||||||
|
context.setAttr('direction', direction);
|
||||||
|
}
|
||||||
|
|
||||||
context.setAttr('font', this._getContextFont());
|
context.setAttr('font', this._getContextFont());
|
||||||
|
|
||||||
@ -315,13 +317,14 @@ export class Text extends Shape<TextConfig> {
|
|||||||
lineTranslateX += this.measureSize(letter).width + letterSpacing;
|
lineTranslateX += this.measureSize(letter).width + letterSpacing;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
context.trySetLetterSpacing(letterSpacing);
|
if (letterSpacing !== 0) {
|
||||||
|
context.setAttr('letterSpacing', `${letterSpacing}px`);
|
||||||
|
}
|
||||||
this._partialTextX = lineTranslateX;
|
this._partialTextX = lineTranslateX;
|
||||||
this._partialTextY = translateY + lineTranslateY;
|
this._partialTextY = translateY + lineTranslateY;
|
||||||
this._partialText = text;
|
this._partialText = text;
|
||||||
|
|
||||||
context.fillStrokeShape(this);
|
context.fillStrokeShape(this);
|
||||||
context.trySetLetterSpacing(0);
|
|
||||||
}
|
}
|
||||||
context.restore();
|
context.restore();
|
||||||
if (textArrLen > 1) {
|
if (textArrLen > 1) {
|
||||||
|
Loading…
Reference in New Issue
Block a user