Skip to content

Commit 8f80811

Browse files
committed
Push back Escape handling to get rid of BaseHoverWidget.hide()
1 parent d1b2607 commit 8f80811

3 files changed

Lines changed: 16 additions & 10 deletions

File tree

src/vs/base/browser/ui/hover/baseHoverWidget.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import * as dom from 'vs/base/browser/dom';
88
import { Widget } from 'vs/base/browser/ui/widget';
99
import { IDisposable } from 'vs/base/common/lifecycle';
1010
import { DomScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElement';
11-
import { KeyCode } from 'vs/base/common/keyCodes';
12-
import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent';
1311

1412
const $ = dom.$;
1513

@@ -32,12 +30,6 @@ export abstract class BaseHoverWidget extends Widget {
3230
this._scrollbar = new DomScrollableElement(this._domNode, {});
3331
this._register(this._scrollbar);
3432
this._containerDomNode.appendChild(this._scrollbar.getDomNode());
35-
36-
this.onkeydown(this._containerDomNode, (e: IKeyboardEvent) => {
37-
if (e.equals(KeyCode.Escape)) {
38-
this.hide();
39-
}
40-
});
4133
}
4234

4335
protected _onContentsChange(): void {
@@ -60,6 +52,4 @@ export abstract class BaseHoverWidget extends Widget {
6052
actionOptions.run(actionContainer);
6153
});
6254
}
63-
64-
protected abstract hide(): void;
6555
}

src/vs/editor/contrib/hover/hoverWidgets.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import * as dom from 'vs/base/browser/dom';
7+
import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent';
78
import { Widget } from 'vs/base/browser/ui/widget';
9+
import { KeyCode } from 'vs/base/common/keyCodes';
810
import { IContentWidget, ICodeEditor, IContentWidgetPosition, ContentWidgetPositionPreference, IOverlayWidget, IOverlayWidgetPosition } from 'vs/editor/browser/editorBrowser';
911
import { ConfigurationChangedEvent, EditorOption } from 'vs/editor/common/config/editorOptions';
1012
import { Position } from 'vs/editor/common/core/position';
@@ -46,6 +48,12 @@ export class ContentHoverWidget extends BaseHoverWidget implements IContentWidge
4648
this._isVisible = false;
4749
this._stoleFocus = false;
4850

51+
this.onkeydown(this._containerDomNode, (e: IKeyboardEvent) => {
52+
if (e.equals(KeyCode.Escape)) {
53+
this.hide();
54+
}
55+
});
56+
4957
this._register(this._editor.onDidChangeConfiguration((e: ConfigurationChangedEvent) => {
5058
if (e.hasChanged(EditorOption.fontInfo)) {
5159
this.updateFont();

src/vs/workbench/contrib/terminal/browser/widgets/hoverWidget.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { editorHoverHighlight, editorHoverBackground, editorHoverBorder, textLin
1212
import * as dom from 'vs/base/browser/dom';
1313
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
1414
import { IHoverTarget, HorizontalAnchorSide, VerticalAnchorSide } from 'vs/workbench/contrib/terminal/browser/widgets/widgets';
15+
import { KeyCode } from 'vs/base/common/keyCodes';
1516
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
1617
import { EDITOR_FONT_DEFAULTS, IEditorOptions } from 'vs/editor/common/config/editorOptions';
1718
import { BaseHoverWidget } from 'vs/base/browser/ui/hover/baseHoverWidget';
@@ -46,6 +47,13 @@ export class HoverWidget extends BaseHoverWidget {
4647
// not be selected.
4748
this.onmousedown(this._containerDomNode, e => e.stopPropagation());
4849

50+
// Hide hover on escape
51+
this.onkeydown(this._containerDomNode, e => {
52+
if (e.equals(KeyCode.Escape)) {
53+
this.dispose();
54+
}
55+
});
56+
4957
const rowElement = $('div.hover-row.markdown-hover');
5058
const contentsElement = $('div.hover-contents');
5159
const markdownElement = renderMarkdown(this._text, {

0 commit comments

Comments
 (0)