From 7aa7a9c70b48b7d19df42f33b60e6f0e5c81b3c5 Mon Sep 17 00:00:00 2001 From: Hai Cao Date: Wed, 13 Jul 2022 13:00:41 -0700 Subject: [PATCH] [Table Designer] Fix table cell editor key capturing (#20021) --- .../base/browser/ui/table/tableCellEditorFactory.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/sql/base/browser/ui/table/tableCellEditorFactory.ts b/src/sql/base/browser/ui/table/tableCellEditorFactory.ts index b1247c2b0d..5fd48cd336 100644 --- a/src/sql/base/browser/ui/table/tableCellEditorFactory.ts +++ b/src/sql/base/browser/ui/table/tableCellEditorFactory.ts @@ -6,12 +6,14 @@ import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox'; import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox'; import { IContextViewProvider } from 'vs/base/browser/ui/contextview/contextview'; -import { KeyCode } from 'vs/base/common/keyCodes'; +import { KeyCode, EVENT_KEY_CODE_MAP } from 'vs/base/common/keyCodes'; import * as DOM from 'vs/base/browser/dom'; import { Dropdown } from 'sql/base/browser/ui/editableDropdown/browser/dropdown'; import { Event } from 'vs/base/common/event'; import { Disposable } from 'vs/base/common/lifecycle'; +const InverseKeyCodeMap: { [k: string]: number } = Object.fromEntries(Object.entries(EVENT_KEY_CODE_MAP).map(([key, value]) => [value, Number(key)])); + export interface ITableCellEditorOptions { valueGetter?: (item: Slick.SlickData, column: Slick.Column) => string, valueSetter?: (context: any, row: number, item: Slick.SlickData, column: Slick.Column, value: string) => void, @@ -50,7 +52,7 @@ export class TableCellEditorFactory { super(); this.init(); const keycodesToCapture = [KeyCode.Home, KeyCode.End, KeyCode.UpArrow, KeyCode.DownArrow, KeyCode.LeftArrow, KeyCode.RightArrow]; - this._keyCaptureList = keycodesToCapture.map(keycode => getCodeForKeyCode(keycode)); + this._keyCaptureList = keycodesToCapture.map(keycode => InverseKeyCodeMap[keycode]); } /** @@ -131,7 +133,7 @@ export class TableCellEditorFactory { super(); this.init(); const keycodesToCapture = [KeyCode.Home, KeyCode.End, KeyCode.UpArrow, KeyCode.DownArrow, KeyCode.LeftArrow, KeyCode.RightArrow]; - this._keyCaptureList = keycodesToCapture.map(keycode => getCodeForKeyCode(keycode)); + this._keyCaptureList = keycodesToCapture.map(keycode => InverseKeyCodeMap[keycode]); } /** @@ -224,7 +226,3 @@ export class TableCellEditorFactory { return DropdownEditor; } } -function getCodeForKeyCode(keycode: KeyCode): any { - throw new Error('Function not implemented.'); -} -