From 797a073224f39be6888731099357ea92919c361f Mon Sep 17 00:00:00 2001 From: Deyan Kamburov Date: Wed, 25 Jun 2025 15:55:04 +0300 Subject: [PATCH 1/2] fix(grid): Cancel endEdit if there is no active editing --- .../igniteui-angular/src/lib/grids/grid-base.directive.ts | 3 +++ .../src/lib/grids/grid/grid-cell-selection.spec.ts | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/projects/igniteui-angular/src/lib/grids/grid-base.directive.ts b/projects/igniteui-angular/src/lib/grids/grid-base.directive.ts index 7de58f86e2c..ac1ca0d5d4c 100644 --- a/projects/igniteui-angular/src/lib/grids/grid-base.directive.ts +++ b/projects/igniteui-angular/src/lib/grids/grid-base.directive.ts @@ -6316,6 +6316,9 @@ export abstract class IgxGridBaseDirective implements GridType, // TODO: do not remove this, as it is used in rowEditTemplate, but mark is as internal and hidden /* blazorCSSuppress */ public endEdit(commit = true, event?: Event): boolean { + if (!this.crudService.cellInEditMode && !this.crudService.rowInEditMode) { + return; + } const document = this.nativeElement?.getRootNode() as Document | ShadowRoot; const focusWithin = this.nativeElement?.contains(document.activeElement); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-cell-selection.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-cell-selection.spec.ts index 0f4e5dae2ae..1e162c7ab16 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-cell-selection.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-cell-selection.spec.ts @@ -43,7 +43,7 @@ describe('IgxGrid - Cell selection #grid', () => { detect = () => grid.cdr.detectChanges(); }); - it('Should be able to select a range with mouse dragging', () => { + fit('Should be able to select a range with mouse dragging', () => { const selectionChangeSpy = spyOn(grid.rangeSelected, 'emit').and.callThrough(); const startCell = grid.gridAPI.get_cell_by_index(2, 'ParentID'); const endCell = grid.gridAPI.get_cell_by_index(3, 'ID'); @@ -84,6 +84,10 @@ describe('IgxGrid - Cell selection #grid', () => { UIInteractions.simulatePointerOverElementEvent('pointerup', endCell.nativeElement); detect(); + // Invoke endEdit() to make sure if no editing is going on, + // the cell activation shouldn't be lost (https://infragistics.visualstudio.com/Indigo_Platform/_workitems/edit/37933) + grid.endEdit(true, null); + fix.detectChanges(); expect(startCell.active).toBe(true); GridSelectionFunctions.verifyCellsRegionSelected(grid, 2, 3, 1, 0); From 727b7c7b046708bc6b836dd479a561bb8a184521 Mon Sep 17 00:00:00 2001 From: Deyan Kamburov Date: Wed, 25 Jun 2025 16:04:08 +0300 Subject: [PATCH 2/2] chore(tests): remove fit from a test --- .../src/lib/grids/grid/grid-cell-selection.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-cell-selection.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-cell-selection.spec.ts index 1e162c7ab16..9c7501966b3 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-cell-selection.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-cell-selection.spec.ts @@ -43,7 +43,7 @@ describe('IgxGrid - Cell selection #grid', () => { detect = () => grid.cdr.detectChanges(); }); - fit('Should be able to select a range with mouse dragging', () => { + it('Should be able to select a range with mouse dragging', () => { const selectionChangeSpy = spyOn(grid.rangeSelected, 'emit').and.callThrough(); const startCell = grid.gridAPI.get_cell_by_index(2, 'ParentID'); const endCell = grid.gridAPI.get_cell_by_index(3, 'ID');