From 0f2442a7a5f9aded8215b34fe46fc2a4c25384ec Mon Sep 17 00:00:00 2001 From: Anthony Dresser Date: Fri, 7 Sep 2018 11:08:14 -0700 Subject: [PATCH] Add fix for flashing during dragging and resize drag box (#2451) * add fix for flashing during dragging and resize drag box * remove unnecessary code --- .../browser/ui/table/plugins/cellRangeSelector.ts | 14 +++++++++++++- src/sql/base/browser/ui/table/table.ts | 5 +++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/sql/base/browser/ui/table/plugins/cellRangeSelector.ts b/src/sql/base/browser/ui/table/plugins/cellRangeSelector.ts index 8102d4c3fe..b3ef8783ef 100644 --- a/src/sql/base/browser/ui/table/plugins/cellRangeSelector.ts +++ b/src/sql/base/browser/ui/table/plugins/cellRangeSelector.ts @@ -5,12 +5,21 @@ require.__$__nodeRequire('slickgrid/plugins/slick.cellrangedecorator'); const defaultOptions: ICellRangeSelectorOptions = { selectionCss: { 'border': '2px dashed blue' - } + }, + offset: { + top: -1, + left: -1, + height: 2, + width: 2 + }, + dragClass: 'drag' }; export interface ICellRangeSelectorOptions { selectionCss?: { [key: string]: string }; cellDecorator?: ICellRangeDecorator; + offset?: { top: number, left: number, height: number, width: number }; + dragClass?: string; } export interface ICellRangeSelector extends Slick.Plugin { @@ -78,6 +87,8 @@ export class CellRangeSelector implements ICellRangeSelector { return; } + this.canvas.classList.add(this.options.dragClass); + this.grid.focus(); let start = this.grid.getCellFromPoint( @@ -114,6 +125,7 @@ export class CellRangeSelector implements ICellRangeSelector { return; } + this.canvas.classList.remove(this.options.dragClass); this.dragging = false; e.stopImmediatePropagation(); diff --git a/src/sql/base/browser/ui/table/table.ts b/src/sql/base/browser/ui/table/table.ts index 284278c351..314d310d61 100644 --- a/src/sql/base/browser/ui/table/table.ts +++ b/src/sql/base/browser/ui/table/table.ts @@ -308,10 +308,15 @@ export class Table extends Widget implements IThemabl if (styles.listHoverBackground) { content.push(`.monaco-table.${this.idPrefix} .slick-row:hover { background-color: ${styles.listHoverBackground}; }`); + // handle no coloring during drag + content.push(`.monaco-table.${this.idPrefix} .drag .slick-row:hover { background-color: inherit; }`); + } if (styles.listHoverForeground) { content.push(`.monaco-table.${this.idPrefix} .slick-row:hover { color: ${styles.listHoverForeground}; }`); + // handle no coloring during drag + content.push(`.monaco-table.${this.idPrefix} .drag .slick-row:hover { color: inherit; }`); } if (styles.listSelectionOutline) {