44 */
55
66import { toRGBA8888 } from 'sixel/lib/Colors' ;
7- import { IDisposable } from '@xterm/xterm' ;
7+ import { IDisposable , IMutableDisposable , ISharedExports } from '@xterm/xterm' ;
88import { ICellSize , ITerminalExt , IImageSpec , IRenderDimensions , IRenderService } from './Types' ;
9- import { Disposable , MutableDisposable , toDisposable } from 'vs/base/ common/lifecycle ' ;
9+ import { AddonDisposable } from 'common/shared/AddonDisposable ' ;
1010
1111const PLACEHOLDER_LENGTH = 4096 ;
1212const PLACEHOLDER_HEIGHT = 24 ;
@@ -17,12 +17,12 @@ const PLACEHOLDER_HEIGHT = 24;
1717 * - add canvas layer to DOM (browser only for now)
1818 * - draw image tiles onRender
1919 */
20- export class ImageRenderer extends Disposable implements IDisposable {
20+ export class ImageRenderer extends AddonDisposable implements IDisposable {
2121 public canvas : HTMLCanvasElement | undefined ;
2222 private _ctx : CanvasRenderingContext2D | null | undefined ;
2323 private _placeholder : HTMLCanvasElement | undefined ;
2424 private _placeholderBitmap : ImageBitmap | undefined ;
25- private _optionsRefresh = this . _register ( new MutableDisposable ( ) ) ;
25+ private _optionsRefresh : IMutableDisposable < IDisposable > ;
2626 private _oldOpen : ( ( parent : HTMLElement ) => void ) | undefined ;
2727 private _renderService : IRenderService | undefined ;
2828 private _oldSetRenderer : ( ( renderer : any ) => void ) | undefined ;
@@ -67,8 +67,8 @@ export class ImageRenderer extends Disposable implements IDisposable {
6767 }
6868
6969
70- constructor ( private _terminal : ITerminalExt ) {
71- super ( ) ;
70+ constructor ( sharedExports : ISharedExports , private _terminal : ITerminalExt ) {
71+ super ( sharedExports ) ;
7272 this . _oldOpen = this . _terminal . _core . open ;
7373 this . _terminal . _core . open = ( parent : HTMLElement ) : void => {
7474 this . _oldOpen ?. call ( this . _terminal . _core , parent ) ;
@@ -78,13 +78,14 @@ export class ImageRenderer extends Disposable implements IDisposable {
7878 this . _open ( ) ;
7979 }
8080 // hack to spot fontSize changes
81+ this . _optionsRefresh = new sharedExports . MutableDisposable ( ) ;
8182 this . _optionsRefresh . value = this . _terminal . _core . optionsService . onOptionChange ( option => {
8283 if ( option === 'fontSize' ) {
8384 this . rescaleCanvas ( ) ;
8485 this . _renderService ?. refreshRows ( 0 , this . _terminal . rows ) ;
8586 }
8687 } ) ;
87- this . _register ( toDisposable ( ( ) => {
88+ this . _register ( sharedExports . toDisposable ( ( ) => {
8889 this . removeLayerFromDom ( ) ;
8990 if ( this . _terminal . _core && this . _oldOpen ) {
9091 this . _terminal . _core . open = this . _oldOpen ;
0 commit comments