From 19631c71424b4f9a7897020402ca80f0417c1b7b Mon Sep 17 00:00:00 2001 From: Mariusz Jurowicz Date: Fri, 8 Jun 2018 12:54:28 +0200 Subject: [PATCH] #7502 fix DataGrid resize handler flickers when multiple instances --- .../src/tableDisplay/dataGrid/event/EventManager.ts | 3 ++- js/notebook/src/tableDisplay/dataGrid/event/helpers.ts | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/js/notebook/src/tableDisplay/dataGrid/event/EventManager.ts b/js/notebook/src/tableDisplay/dataGrid/event/EventManager.ts index 31768970a7..11c6a26a4a 100644 --- a/js/notebook/src/tableDisplay/dataGrid/event/EventManager.ts +++ b/js/notebook/src/tableDisplay/dataGrid/event/EventManager.ts @@ -31,6 +31,7 @@ import retrieveUrl = DataGridHelpers.retrieveUrl; import {EventHelpers} from "./helpers"; import isOutsideNode = EventHelpers.isOutsideNode; import isInsideGridNode = EventHelpers.isInsideGridNode; +import isInsideGrid = EventHelpers.isInsideGrid; const COLUMN_RESIZE_AREA_WIDTH = 4; @@ -189,7 +190,7 @@ export default class EventManager { } private isOutsideGrid(event) { - return isOutsideNode(event, this.dataGrid.node); + return !isInsideGrid(event); } private handleCellHover(event) { diff --git a/js/notebook/src/tableDisplay/dataGrid/event/helpers.ts b/js/notebook/src/tableDisplay/dataGrid/event/helpers.ts index c8594d52a7..88cf300345 100644 --- a/js/notebook/src/tableDisplay/dataGrid/event/helpers.ts +++ b/js/notebook/src/tableDisplay/dataGrid/event/helpers.ts @@ -26,6 +26,15 @@ export namespace EventHelpers { ) } + export function isInsideGrid(event) { + const relatedTarget = (event.relatedTarget || event.target) as HTMLElement; + + return relatedTarget && ( + relatedTarget.classList.contains('p-DataGrid') + || relatedTarget.closest('.p-DataGrid') + ) + } + export function isInsideGridNode(event: MouseEvent, gridNode: HTMLElement) { const relatedTarget = (event.relatedTarget || event.target) as HTMLElement;