mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-03 06:51:53 +01:00
Fixes #21007: Minimap in output panel does not immediately respond to theme change
This commit is contained in:
@@ -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 = [];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user