Skip to content

Commit

Permalink
Fix spacing issue when measuring before element is attached
Browse files Browse the repository at this point in the history
  • Loading branch information
Tyriar committed Feb 29, 2024
1 parent 8e015eb commit fca88f5
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions src/browser/renderer/dom/WidthCache.ts
Original file line number Diff line number Diff line change
Expand Up @@ -134,9 +134,15 @@ export class WidthCache implements IDisposable {
public get(c: string, bold: boolean | number, italic: boolean | number): number {
let cp = 0;
if (!bold && !italic && c.length === 1 && (cp = c.charCodeAt(0)) < WidthCacheSettings.FLAT_SIZE) {
return this._flat[cp] !== WidthCacheSettings.FLAT_UNSET
? this._flat[cp]
: (this._flat[cp] = this._measure(c, 0));
if (this._flat[cp] !== WidthCacheSettings.FLAT_UNSET) {
return this._flat[cp];
}
const width = this._measure(c, 0);
if (width > 0) {
// Only store if it's a valid width
this._flat[cp] = width;
}
return width;
}
let key = c;
if (bold) key += 'B';
Expand All @@ -147,7 +153,9 @@ export class WidthCache implements IDisposable {
if (bold) variant |= FontVariant.BOLD;
if (italic) variant |= FontVariant.ITALIC;
width = this._measure(c, variant);
this._holey!.set(key, width);
if (width > 0) {
this._holey!.set(key, width);
}
}
return width;
}
Expand Down

0 comments on commit fca88f5

Please sign in to comment.