Skip to content

Commit 675deb4

Browse files
committed
ActionBar should not intercept escape unless needed
Fix microsoft#107665
1 parent e94761a commit 675deb4

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

src/vs/base/browser/ui/actionbar/actionbar.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,9 @@ export class ActionBar extends Disposable implements IActionRunner {
6464
private _onDidBlur = this._register(new Emitter<void>());
6565
readonly onDidBlur = this._onDidBlur.event;
6666

67-
private _onDidCancel = this._register(new Emitter<void>());
67+
private _onDidCancel = this._register(new Emitter<void>({ onFirstListenerAdd: () => this.cancelHasListener = true }));
6868
readonly onDidCancel = this._onDidCancel.event;
69+
private cancelHasListener = false;
6970

7071
private _onDidRun = this._register(new Emitter<IRunEvent>());
7172
readonly onDidRun = this._onDidRun.event;
@@ -138,7 +139,7 @@ export class ActionBar extends Disposable implements IActionRunner {
138139
eventHandled = this.focusPrevious();
139140
} else if (nextKeys && (event.equals(nextKeys[0]) || event.equals(nextKeys[1]))) {
140141
eventHandled = this.focusNext();
141-
} else if (event.equals(KeyCode.Escape)) {
142+
} else if (event.equals(KeyCode.Escape) && this.cancelHasListener) {
142143
this._onDidCancel.fire();
143144
} else if (this.isTriggerKeyEvent(event)) {
144145
// Staying out of the else branch even if not triggered

0 commit comments

Comments
 (0)