Skip to content

Commit 219f785

Browse files
committed
fix: letterSpacing fixes
1 parent e2f3982 commit 219f785

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

src/canvas.android.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ class ProxyClass<T> {
206206
}
207207
}
208208
const result = target.handleCustomMethods(target, native, methodName, args);
209-
if (result) {
209+
if (result !== undefined) {
210210
return result;
211211
}
212212
return native[methodName](...args);
@@ -268,8 +268,6 @@ class Canvas extends ProxyClass<android.graphics.Canvas> {
268268
} else if (methodName === 'drawView') {
269269
drawViewOnCanvas(native, args[0], args[1]);
270270
return true;
271-
} else if (methodName === 'setLetterSpacing' && sdkVersion() < 21) {
272-
return true;
273271
}
274272
}
275273
getImage() {
@@ -323,6 +321,10 @@ export class Paint extends ProxyClass<android.graphics.Paint> {
323321
}
324322
this.mNeedsFontUpdate = true;
325323
return this.mFontInternal;
324+
} else if (methodName === 'setLetterSpacing' && sdkVersion() < 21) {
325+
return true;
326+
} else if (methodName === 'getLetterSpacing' && sdkVersion() < 21) {
327+
return 0;
326328
}
327329
}
328330
setFont(font: Font) {
@@ -345,6 +347,12 @@ export class Paint extends ProxyClass<android.graphics.Paint> {
345347
set font(font: Font) {
346348
this.setFont(font);
347349
}
350+
get letterSpacing() {
351+
return this['getLetterSpacing']();
352+
}
353+
set letterSpacing(spacing: number) {
354+
this['setLetterSpacing'](spacing);
355+
}
348356
getFontFamily() {
349357
return this.font.fontFamily;
350358
}

src/canvas.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,17 @@ export class Paint {
2727
strokeJoin: Join;
2828
style: Style;
2929
textSize: number;
30+
letterSpacing: number;
3031
fontFamily: string;
3132
fontWeight: FontWeight;
3233
fontStyle: FontStyle;
3334
font: Font;
3435
getFont(): Font;
3536
setFont(font: Font);
3637

38+
public setLetterSpacing(spacing: number);
39+
public getLetterSpacing(): number;
40+
3741
public getAlpha(): number;
3842
public getStyle(): Style;
3943
public setStrokeMiter(value: number): void;

src/canvas.ios.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -857,7 +857,7 @@ export class Paint implements IPaint {
857857
antiAlias = true;
858858
dither;
859859
alpha = 255;
860-
letterSpacing: number;
860+
letterSpacing: number = 0;
861861
currentContext: any;
862862
shadowLayer?: {
863863
radius: number;
@@ -1236,7 +1236,7 @@ export class Paint implements IPaint {
12361236
if (color) {
12371237
this.mTextAttribs.setObjectForKey(color, NSForegroundColorAttributeName);
12381238
}
1239-
if (this.letterSpacing !== undefined) {
1239+
if (this.letterSpacing !== 0) {
12401240
this.mTextAttribs.setObjectForKey(this.letterSpacing * iosFont.pointSize, NSKernAttributeName);
12411241
}
12421242
if (this.align === Align.CENTER) {

0 commit comments

Comments
 (0)