align isPowerlineGlyph across renderers (#3743)

This commit is contained in:
Megan Rogge
2022-04-20 14:25:46 -07:00
committed by GitHub
parent 38f0dd9be2
commit da33543ffb
4 changed files with 15 additions and 22 deletions
+2 -7
View File
@@ -14,7 +14,7 @@ import { AttributeData } from 'common/buffer/AttributeData';
import { IColorSet, IColor } from 'browser/Types';
import { CellData } from 'common/buffer/CellData';
import { IBufferService, IOptionsService } from 'common/services/Services';
import { throwIfFalsy } from 'browser/renderer/RendererUtils';
import { isPowerlineGlyph, throwIfFalsy } from 'browser/renderer/RendererUtils';
import { channels, color, rgba } from 'browser/Color';
import { removeElementFromParent } from 'browser/Dom';
import { tryDrawCustomChar } from 'browser/renderer/CustomGlyphs';
@@ -428,12 +428,7 @@ export abstract class BaseRenderLayer implements IRenderLayer {
}
private _getContrastColor(cell: CellData): IColor | undefined {
const codepoint = cell.getCode();
if (57344 <= codepoint && codepoint <= 63743) {
// powerline chars #3739
return undefined;
}
if (this._optionsService.rawOptions.minimumContrastRatio === 1) {
if (this._optionsService.rawOptions.minimumContrastRatio === 1 || isPowerlineGlyph(cell.getCode())) {
return undefined;
}
+6
View File
@@ -9,3 +9,9 @@ export function throwIfFalsy<T>(value: T | undefined | null): T {
}
return value;
}
export function isPowerlineGlyph(codepoint: number): boolean {
// This range was established via
// https://apw-bash-settings.readthedocs.io/en/latest/fontpatching.html
return 0xE000 <= codepoint && codepoint <= 0xF8FF;
}
@@ -12,6 +12,7 @@ import { color, rgba } from 'browser/Color';
import { IColorSet, IColor } from 'browser/Types';
import { ICharacterJoinerService } from 'browser/services/Services';
import { JoinedCellData } from 'browser/services/CharacterJoinerService';
import { isPowerlineGlyph } from 'browser/renderer/RendererUtils';
export const BOLD_CLASS = 'xterm-bold';
export const DIM_CLASS = 'xterm-dim';
@@ -225,8 +226,7 @@ export class DomRendererRowFactory {
}
private _applyMinimumContrast(element: HTMLElement, bg: IColor, fg: IColor, cell: ICellData): boolean {
const codepoint = cell.getCode();
if (this._optionsService.rawOptions.minimumContrastRatio === 1 || 57344 <= codepoint && codepoint <= 63743) {
if (this._optionsService.rawOptions.minimumContrastRatio === 1 || isPowerlineGlyph(cell.getCode())) {
return false;
}