diff --git a/src/vs/editor/contrib/zoneWidget/browser/peekViewWidget.ts b/src/vs/editor/contrib/zoneWidget/browser/peekViewWidget.ts index 49a6460bd1d..7da35776f32 100644 --- a/src/vs/editor/contrib/zoneWidget/browser/peekViewWidget.ts +++ b/src/vs/editor/contrib/zoneWidget/browser/peekViewWidget.ts @@ -141,7 +141,7 @@ export abstract class PeekViewWidget extends ZoneWidget implements IPeekViewServ public _doLayout(heightInPixel: number, widthInPixel: number): void { - if (heightInPixel < 0) { + if (!this._isShowing && heightInPixel < 0) { // Looks like the view zone got folded away! this.dispose(); this._onDidClose.fire(this); diff --git a/src/vs/editor/contrib/zoneWidget/browser/zoneWidget.ts b/src/vs/editor/contrib/zoneWidget/browser/zoneWidget.ts index 0c50e9bbaa2..78e6eedeada 100644 --- a/src/vs/editor/contrib/zoneWidget/browser/zoneWidget.ts +++ b/src/vs/editor/contrib/zoneWidget/browser/zoneWidget.ts @@ -182,12 +182,16 @@ export abstract class ZoneWidget extends Widget implements IHorizontalSashLayout return undefined; } + protected _isShowing: boolean = false; + public show(rangeOrPos: IRange | IPosition, heightInLines: number): void { const range = Range.isIRange(rangeOrPos) ? rangeOrPos : new Range(rangeOrPos.lineNumber, rangeOrPos.column, rangeOrPos.lineNumber, rangeOrPos.column); + this._isShowing = true; this._showImpl(range, heightInLines); + this._isShowing = false; this._positionMarkerId = this.editor.deltaDecorations(this._positionMarkerId, [{ range, options: {} }]); }