提交 c35814e4 编写于 作者: A Alex Dima

Fixes #21229: Add a shadow to the minimap

上级 8ced802f
......@@ -30,3 +30,18 @@
.monaco-editor.hc-black .minimap-slider.active {
background: rgba(111, 195, 223, 1);
}
.monaco-editor .minimap-shadow-hidden {
position: absolute;
width: 0;
}
.monaco-editor .minimap-shadow-visible {
position: absolute;
left: -6px;
width: 6px;
box-shadow: #DDD -6px 0 6px -6px inset;
}
.monaco-editor.vs-dark .minimap-shadow-visible {
box-shadow: #000 -6px 0 6px -6px inset;
}
......@@ -399,6 +399,7 @@ export class Minimap extends ViewPart {
private readonly _editorScrollbar: EditorScrollbar;
private readonly _domNode: FastDomNode<HTMLElement>;
private readonly _shadow: FastDomNode<HTMLElement>;
private readonly _canvas: FastDomNode<HTMLCanvasElement>;
private readonly _slider: FastDomNode<HTMLElement>;
private readonly _tokensColorTracker: MinimapTokensColorTracker;
......@@ -423,6 +424,10 @@ export class Minimap extends ViewPart {
this._domNode.setPosition('absolute');
this._domNode.setRight(this._context.configuration.editor.layoutInfo.verticalScrollbarWidth);
this._shadow = createFastDomNode(document.createElement('div'));
this._shadow.setClassName('minimap-shadow-hidden');
this._domNode.domNode.appendChild(this._shadow.domNode);
this._canvas = createFastDomNode(document.createElement('canvas'));
this._canvas.setPosition('absolute');
this._canvas.setLeft(0);
......@@ -477,6 +482,7 @@ export class Minimap extends ViewPart {
private _applyLayout(): void {
this._domNode.setWidth(this._options.minimapWidth);
this._domNode.setHeight(this._options.minimapHeight);
this._shadow.setHeight(this._options.minimapHeight);
this._canvas.setWidth(this._options.canvasOuterWidth);
this._canvas.setHeight(this._options.canvasOuterHeight);
this._canvas.domNode.width = this._options.canvasInnerWidth;
......@@ -536,7 +542,7 @@ export class Minimap extends ViewPart {
return true;
}
public onScrollChanged(e: viewEvents.ViewScrollChangedEvent): boolean {
return e.scrollTopChanged || e.scrollHeightChanged;
return true;
}
public onTokensChanged(e: viewEvents.ViewTokensChangedEvent): boolean {
if (this._lastRenderData) {
......@@ -563,8 +569,14 @@ export class Minimap extends ViewPart {
public render(renderingCtx: IRestrictedRenderingContext): void {
const renderMinimap = this._options.renderMinimap;
if (renderMinimap === RenderMinimap.None) {
this._shadow.setClassName('minimap-shadow-hidden');
return;
}
if (renderingCtx.viewportLeft + renderingCtx.viewportWidth >= renderingCtx.scrollWidth) {
this._shadow.setClassName('minimap-shadow-hidden');
} else {
this._shadow.setClassName('minimap-shadow-visible');
}
const layout = new MinimapLayout(
this._lastRenderData,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册