Skip to content

Commit 1e29e44

Browse files
committed
Merge branch 'toast-test' of https://github.com/IgniteUI/igniteui-angular into toast-test
2 parents 92afc05 + 4f9ecdc commit 1e29e44

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

projects/igniteui-angular/src/lib/core/styles/components/grid/_grid-theme.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1210,6 +1210,7 @@
12101210

12111211
%igx-grid__tr--inner {
12121212
display: flex;
1213+
background: inherit;
12131214
}
12141215

12151216
%igx-grid__tr--add-animate {

projects/igniteui-angular/src/lib/grids/selection/selection.service.ts

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,12 @@ export class IgxGridSelectionService {
6262
*/
6363
public selectedRowsChange = new Subject();
6464

65+
/**
66+
* Toggled when a pointerdown event is triggered inside the grid body (cells).
67+
* When `false` the drag select behavior is disabled.
68+
*/
69+
private pointerEventInGridBody = false;
70+
6571
private allRowsSelected: boolean;
6672
private _ranges: Set<string> = new Set<string>();
6773
private _selectionRange: Range;
@@ -265,6 +271,8 @@ export class IgxGridSelectionService {
265271
this.initKeyboardState();
266272
this.pointerState.ctrl = ctrl;
267273
this.pointerState.shift = shift;
274+
this.pointerEventInGridBody = true;
275+
document.body.addEventListener('pointerup', this.pointerOriginHandler);
268276

269277
// No ctrl key pressed - no multiple selection
270278
if (!ctrl) {
@@ -311,7 +319,7 @@ export class IgxGridSelectionService {
311319

312320
public pointerEnter(node: ISelectionNode, event: PointerEvent): boolean {
313321
// https://www.w3.org/TR/pointerevents/#the-button-property
314-
this.dragMode = event.buttons === 1 && (event.button === -1 || event.button === 0);
322+
this.dragMode = (event.buttons === 1 && (event.button === -1 || event.button === 0)) && this.pointerEventInGridBody;
315323
if (!this.dragMode) {
316324
return false;
317325
}
@@ -351,7 +359,9 @@ export class IgxGridSelectionService {
351359
return true;
352360
}
353361

354-
this.add(node);
362+
if (this.pointerEventInGridBody) {
363+
this.add(node);
364+
}
355365
return false;
356366
}
357367

@@ -727,6 +737,11 @@ export class IgxGridSelectionService {
727737
private isRowDeleted(rowID): boolean {
728738
return this.grid.gridAPI.row_deleted_transaction(rowID);
729739
}
740+
741+
private pointerOriginHandler = () => {
742+
this.pointerEventInGridBody = false;
743+
document.body.removeEventListener('pointerup', this.pointerOriginHandler);
744+
};
730745
}
731746

732747
export const isChromium = (): boolean => (/Chrom|e?ium/g.test(navigator.userAgent) ||

0 commit comments

Comments
 (0)