mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 04:49:35 +00:00
Fixes #21007: Minimap in output panel does not immediately respond to theme change
This commit is contained in:
parent
669ab8b0a4
commit
51b83f5d29
|
@ -372,7 +372,6 @@ export class Minimap extends ViewPart {
|
|||
private readonly _canvas: FastDomNode<HTMLCanvasElement>;
|
||||
private readonly _slider: FastDomNode<HTMLElement>;
|
||||
private readonly _tokensColorTracker: MinimapTokensColorTracker;
|
||||
private readonly _tokensColorTrackerListener: IDisposable;
|
||||
private readonly _mouseDownListener: IDisposable;
|
||||
|
||||
private readonly _minimapCharRenderer: MinimapCharRenderer;
|
||||
|
@ -405,7 +404,6 @@ export class Minimap extends ViewPart {
|
|||
this._domNode.domNode.appendChild(this._slider.domNode);
|
||||
|
||||
this._tokensColorTracker = MinimapTokensColorTracker.getInstance();
|
||||
this._tokensColorTrackerListener = this._tokensColorTracker.onDidChange(() => this._buffers = null);
|
||||
|
||||
this._minimapCharRenderer = getOrCreateMinimapCharRenderer();
|
||||
|
||||
|
@ -438,7 +436,6 @@ export class Minimap extends ViewPart {
|
|||
}
|
||||
|
||||
public dispose(): void {
|
||||
this._tokensColorTrackerListener.dispose();
|
||||
this._mouseDownListener.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
@ -455,7 +452,6 @@ export class Minimap extends ViewPart {
|
|||
this._canvas.domNode.width = this._options.canvasInnerWidth;
|
||||
this._canvas.domNode.height = this._options.canvasInnerHeight;
|
||||
this._slider.setWidth(this._options.minimapWidth);
|
||||
this._buffers = null;
|
||||
}
|
||||
|
||||
private _getBuffer(): ImageData {
|
||||
|
@ -477,6 +473,7 @@ export class Minimap extends ViewPart {
|
|||
}
|
||||
this._options = opts;
|
||||
this._lastRenderData = null;
|
||||
this._buffers = null;
|
||||
this._applyLayout();
|
||||
return true;
|
||||
}
|
||||
|
@ -517,6 +514,11 @@ export class Minimap extends ViewPart {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
public onTokensColorsChanged(e: viewEvents.ViewTokensColorsChangedEvent): boolean {
|
||||
this._lastRenderData = null;
|
||||
this._buffers = null;
|
||||
return true;
|
||||
}
|
||||
public onZonesChanged(e: viewEvents.ViewZonesChangedEvent): boolean {
|
||||
this._lastRenderData = null;
|
||||
return true;
|
||||
|
|
|
@ -25,7 +25,8 @@ export const enum ViewEventType {
|
|||
ViewScrollChanged = 12,
|
||||
ViewScrollRequest = 13,
|
||||
ViewTokensChanged = 14,
|
||||
ViewZonesChanged = 15,
|
||||
ViewTokensColorsChanged = 15,
|
||||
ViewZonesChanged = 16,
|
||||
}
|
||||
|
||||
export class ViewConfigurationChangedEvent {
|
||||
|
@ -270,6 +271,15 @@ export class ViewTokensChangedEvent {
|
|||
}
|
||||
}
|
||||
|
||||
export class ViewTokensColorsChangedEvent {
|
||||
|
||||
public readonly type = ViewEventType.ViewTokensColorsChanged;
|
||||
|
||||
constructor() {
|
||||
// Nothing to do
|
||||
}
|
||||
}
|
||||
|
||||
export class ViewZonesChangedEvent {
|
||||
|
||||
public readonly type = ViewEventType.ViewZonesChanged;
|
||||
|
@ -294,5 +304,6 @@ export type ViewEvent = (
|
|||
| ViewScrollChangedEvent
|
||||
| ViewScrollRequestEvent
|
||||
| ViewTokensChangedEvent
|
||||
| ViewTokensColorsChangedEvent
|
||||
| ViewZonesChangedEvent
|
||||
);
|
||||
|
|
|
@ -74,6 +74,9 @@ export class ViewEventHandler {
|
|||
public onTokensChanged(e: viewEvents.ViewTokensChangedEvent): boolean {
|
||||
return false;
|
||||
}
|
||||
public onTokensColorsChanged(e: viewEvents.ViewTokensColorsChangedEvent): boolean {
|
||||
return false;
|
||||
}
|
||||
public onZonesChanged(e: viewEvents.ViewZonesChangedEvent): boolean {
|
||||
return false;
|
||||
}
|
||||
|
@ -173,6 +176,12 @@ export class ViewEventHandler {
|
|||
}
|
||||
break;
|
||||
|
||||
case viewEvents.ViewEventType.ViewTokensColorsChanged:
|
||||
if (this.onTokensColorsChanged(e)) {
|
||||
shouldRender = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case viewEvents.ViewEventType.ViewZonesChanged:
|
||||
if (this.onZonesChanged(e)) {
|
||||
shouldRender = true;
|
||||
|
|
|
@ -19,6 +19,7 @@ import { MinimapLinesRenderingData, ViewLineRenderingData, ViewModelDecoration,
|
|||
import { SplitLinesCollection } from 'vs/editor/common/viewModel/splitLinesCollection';
|
||||
import * as viewEvents from 'vs/editor/common/view/viewEvents';
|
||||
import * as errors from 'vs/base/common/errors';
|
||||
import { MinimapTokensColorTracker } from 'vs/editor/common/view/minimapCharRenderer';
|
||||
|
||||
export class CoordinatesConverter implements ICoordinatesConverter {
|
||||
|
||||
|
@ -128,6 +129,9 @@ export class ViewModel implements IViewModel {
|
|||
this._toDispose.push(this.configuration.onDidChange((e) => {
|
||||
this.onEvents([new EmitterEvent(editorCommon.EventType.ConfigurationChanged, e)]);
|
||||
}));
|
||||
this._toDispose.push(MinimapTokensColorTracker.getInstance().onDidChange(() => {
|
||||
this._emit([new viewEvents.ViewTokensColorsChangedEvent()]);
|
||||
}));
|
||||
|
||||
this._listeners = [];
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue