this._register(domEvent(window, 'keydown', true)((e: KeyboardEvent) => { const evt = new StandardKeyboardEvent(e); if (evt.equals(KeyCode.Enter) || evt.equals(KeyCode.Space)) { return; } let eventHandled = false; if (this.buttonGroup) { if (evt.equals(KeyMod.Shift | KeyCode.Tab) || evt.equals(KeyCode.LeftArrow)) { focusedButton = focusedButton + this.buttonGroup.buttons.length - 1; focusedButton = focusedButton % this.buttonGroup.buttons.length; this.buttonGroup.buttons[focusedButton].focus(); eventHandled = true; } else if (evt.equals(KeyCode.Tab) || evt.equals(KeyCode.RightArrow)) { focusedButton++; focusedButton = focusedButton % this.buttonGroup.buttons.length; this.buttonGroup.buttons[focusedButton].focus(); eventHandled = true; } } if (eventHandled) { EventHelper.stop(e, true); } else if (this.options.keyEventProcessor) { this.options.keyEventProcessor(evt); } }));
this._register(domEvent(window, 'keyup', true)((e: KeyboardEvent) => { EventHelper.stop(e, true); const evt = new StandardKeyboardEvent(e); if (evt.equals(KeyCode.Escape)) { resolve(this.options.cancelId || 0); } }));
private onTitleClick(e: MouseEvent | GestureEvent): void { // Close editor on middle mouse click if (e instanceof MouseEvent && e.button === 1 /* Middle Button */) { EventHelper.stop(e, true /* for https://github.com/Microsoft/vscode/issues/56715 */); this.group.closeEditor(this.group.activeEditor); } }
private onTitleDoubleClick(e: MouseEvent): void { DOM.EventHelper.stop(e); if (!this.context) { return; } const group = this.context; this.editorGroupService.pinEditor(group, group.activeEditor); }
this._register(domEvent(this.element, 'focusout', false)((e: FocusEvent) => { if (!!e.relatedTarget && !!this.element) { if (!isAncestor(e.relatedTarget as HTMLElement, this.element)) { this.focusToReturn = e.relatedTarget as HTMLElement; if (e.target) { (e.target as HTMLElement).focus(); EventHelper.stop(e, true); } } } }));
this._register(addDisposableListener(this._label, EventType.KEY_UP, e => { const event = new StandardKeyboardEvent(e); if (event.equals(KeyCode.Enter) || event.equals(KeyCode.Space)) { EventHelper.stop(e, true); // https://github.com/Microsoft/vscode/issues/57997 if (this.visible) { this.hide(); } else { this.show(); } } }));
this._register(domEvent(this.element, 'keydown', true)((e: KeyboardEvent) => { const evt = new StandardKeyboardEvent(e); if (evt.equals(KeyCode.Enter)) { return; } if (this.buttonGroup) { if ((evt.shiftKey && evt.equals(KeyCode.Tab)) || evt.equals(KeyCode.LeftArrow)) { focusedButton = focusedButton + this.buttonGroup.buttons.length - 1; focusedButton = focusedButton % this.buttonGroup.buttons.length; this.buttonGroup.buttons[focusedButton].focus(); } else if (evt.equals(KeyCode.Tab) || evt.equals(KeyCode.RightArrow)) { focusedButton++; focusedButton = focusedButton % this.buttonGroup.buttons.length; this.buttonGroup.buttons[focusedButton].focus(); } } EventHelper.stop(e, true); }));
this.$label.on([EventType.CLICK, EventType.MOUSE_DOWN, GestureEventType.Tap], (e: Event) => { EventHelper.stop(e, true); // prevent default click behaviour to trigger }).on([EventType.MOUSE_DOWN, GestureEventType.Tap], (e: Event) => {
this._register(button.onDidClick(e => { EventHelper.stop(e); resolve(index); }));
this._register(domEvent(this.modal, 'mousedown')(e => { // Used to stop focusing of modal with mouse EventHelper.stop(e, true); }));