From 86e6b42bdc09ea3747c9aced55cb1ed7296b826b Mon Sep 17 00:00:00 2001 From: Alan Ren Date: Fri, 24 Mar 2023 20:10:05 -0700 Subject: [PATCH] select the row on double click (#22456) * select row on double click * skip row number column --- src/sql/workbench/contrib/query/browser/gridPanel.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/sql/workbench/contrib/query/browser/gridPanel.ts b/src/sql/workbench/contrib/query/browser/gridPanel.ts index 653f837e8c..4a21b777c2 100644 --- a/src/sql/workbench/contrib/query/browser/gridPanel.ts +++ b/src/sql/workbench/contrib/query/browser/gridPanel.ts @@ -549,6 +549,7 @@ export abstract class GridTableBase extends Disposable implements IView { this._register(this.dataProvider.onFilterStateChange(() => { this.layout(); })); this._register(this.table.onContextMenu(this.contextMenu, this)); this._register(this.table.onClick(this.onTableClick, this)); + this._register(this.table.onDoubleClick(this.onTableDoubleClick, this)); this._register(this.dataProvider.onFilterStateChange(() => { const columns = this.table.columns as FilterableColumn[]; this.state.columnFilters = columns.filter((column) => column.filterValues?.length > 0).map(column => { @@ -767,6 +768,15 @@ export abstract class GridTableBase extends Disposable implements IView { } } + private onTableDoubleClick(event: ITableMouseEvent) { + // the first column is already handled by rowNumberColumn plugin. + if (event.cell && event.cell.cell !== 0) { + // upon double clicking, we want to select the entire row so that it is easier to know which + // row is selected when the user needs to scroll horizontally. + this.table.grid.setSelectedRows([event.cell.row]); + } + } + public updateResult(resultSet: ResultSetSummary) { this._resultSet = resultSet; if (this.table && this.visible) {