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 c2bb6e0c915..ddf9321e0ba 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..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 @@ -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);