diff --git a/src/sql/base/browser/ui/taskbar/actionbar.ts b/src/sql/base/browser/ui/taskbar/actionbar.ts index 737d023ee9..dbf85c6bcd 100644 --- a/src/sql/base/browser/ui/taskbar/actionbar.ts +++ b/src/sql/base/browser/ui/taskbar/actionbar.ts @@ -153,12 +153,18 @@ export class ActionBar extends ActionRunner implements IActionRunner { } private updateFocusedItem(): void { + let actionIndex = 0; for (let i = 0; i < this._actionsList.children.length; i++) { let elem = this._actionsList.children[i]; + if (DOM.isAncestor(document.activeElement, elem)) { - this._focusedItem = i; + this._focusedItem = actionIndex; break; } + + if (elem.classList.contains('action-item')) { + actionIndex++; + } } } diff --git a/src/sql/parts/grid/views/query/query.component.html b/src/sql/parts/grid/views/query/query.component.html index 81e3085794..de588c40a0 100644 --- a/src/sql/parts/grid/views/query/query.component.html +++ b/src/sql/parts/grid/views/query/query.component.html @@ -58,7 +58,7 @@ [{{message.time}}] - {{message.message}} {{message.link.text}} + {{message.message}} {{message.link.text}} diff --git a/src/sql/parts/grid/views/query/query.component.ts b/src/sql/parts/grid/views/query/query.component.ts index 9e6c1fdd56..ab39771aa9 100644 --- a/src/sql/parts/grid/views/query/query.component.ts +++ b/src/sql/parts/grid/views/query/query.component.ts @@ -26,10 +26,12 @@ import { IBootstrapService, BOOTSTRAP_SERVICE_ID } from 'sql/services/bootstrap/ import { QueryComponentParams } from 'sql/services/bootstrap/bootstrapParams'; import { error } from 'sql/base/common/log'; import { TabChild } from 'sql/base/browser/ui/panel/tab.component'; +import { clone } from 'sql/base/common/objects'; import * as strings from 'vs/base/common/strings'; -import { clone } from 'sql/base/common/objects'; import * as DOM from 'vs/base/browser/dom'; +import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; +import { KeyCode } from 'vs/base/common/keyCodes'; export const QUERY_SELECTOR: string = 'query-component'; @@ -150,7 +152,7 @@ export class QueryComponent extends GridParentComponent implements OnInit, OnDes @ViewChildren('slickgrid') slickgrids: QueryList; // tslint:disable-next-line:no-unused-variable @ViewChild('resultsPane', { read: ElementRef }) private _resultsPane: ElementRef; - + @ViewChild('queryLink', { read: ElementRef }) private _queryLinkElement: ElementRef; constructor( @Inject(forwardRef(() => ElementRef)) el: ElementRef, @Inject(forwardRef(() => ChangeDetectorRef)) cd: ChangeDetectorRef, @@ -404,6 +406,16 @@ export class QueryComponent extends GridParentComponent implements OnInit, OnDes this.dataService.setEditorSelection(index); } + onKey(e: Event, index: number) { + if (DOM.isAncestor(e.target, this._queryLinkElement.nativeElement) && e instanceof KeyboardEvent) { + let event = new StandardKeyboardEvent(e); + if (event.equals(KeyCode.Enter)) { + this.onSelectionLinkClicked(index); + e.stopPropagation(); + } + } + } + /** * Sets up the resize for the messages/results panes bar */