From ef5beb670678c8bcda1bb226d91bfbfd89518598 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Fri, 29 Dec 2017 08:30:13 -0800 Subject: [PATCH] Update charatlas when monitor DPI changes Fixes #1118 --- src/Terminal.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Terminal.ts b/src/Terminal.ts index afea5e90..3026c9a3 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -637,7 +637,11 @@ export class Terminal extends EventEmitter implements ITerminal, IInputHandlingT this.on('resize', () => this.renderer.onResize(this.cols, this.rows, false)); this.on('blur', () => this.renderer.onBlur()); this.on('focus', () => this.renderer.onFocus()); - window.addEventListener('resize', () => this.renderer.onWindowResize(window.devicePixelRatio)); + const rendererResizeListener = () => this.renderer.onWindowResize(window.devicePixelRatio); + // Listen for window zoom + window.addEventListener('resize', () => rendererResizeListener); + // Listen for monitor DPI change + window.matchMedia('screen and (-webkit-min-device-pixel-ratio: 1.5)').addListener(rendererResizeListener); this.charMeasure.on('charsizechanged', () => this.renderer.onResize(this.cols, this.rows, true)); this.renderer.on('resize', (dimensions) => this.viewport.syncScrollArea());