Skip to content

Commit a381756

Browse files
authored
Merge pull request #7238 from IgniteUI/mkirova/fix-container-scroll
fix(igxGrid): Fix issues when grid container is scrolled left as a re…
2 parents 0b67357 + 72f1ae9 commit a381756

File tree

4 files changed

+13
-19
lines changed

4 files changed

+13
-19
lines changed

projects/igniteui-angular/src/lib/grids/grid-base.directive.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3054,7 +3054,7 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
30543054
this._zoneBegoneListeners();
30553055

30563056
const vertScrDC = this.verticalScrollContainer.displayContainer;
3057-
vertScrDC.addEventListener('scroll', this.scrollHandler);
3057+
vertScrDC.addEventListener('scroll', this.preventContainerScroll);
30583058

30593059
this._pinnedRowList.changes
30603060
.pipe(takeUntil(this.destroy$))
@@ -3132,7 +3132,7 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
31323132
this.verticalScrollContainer.getScroll().removeEventListener('scroll', this.verticalScrollHandler);
31333133
this.headerContainer.getScroll().removeEventListener('scroll', this.horizontalScrollHandler);
31343134
const vertScrDC = this.verticalScrollContainer.displayContainer;
3135-
vertScrDC.removeEventListener('scroll', this.scrollHandler);
3135+
vertScrDC.removeEventListener('scroll', this.preventContainerScroll);
31363136
});
31373137
}
31383138

@@ -5583,11 +5583,15 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
55835583
/**
55845584
* @hidden @internal
55855585
*/
5586-
public scrollHandler = (event) => {
5587-
this.headerContainer.scrollPosition += event.target.scrollLeft;
5588-
this.verticalScrollContainer.scrollPosition += event.target.scrollTop;
5589-
event.target.scrollLeft = 0;
5590-
event.target.scrollTop = 0;
5586+
public preventContainerScroll = (evt) => {
5587+
if (evt.target.scrollTop !== 0) {
5588+
this.verticalScrollContainer.addScrollTop(evt.target.scrollTop);
5589+
evt.target.scrollTop = 0;
5590+
}
5591+
if (evt.target.scrollLeft !== 0) {
5592+
this.headerContainer.scrollPosition += evt.target.scrollLeft;
5593+
evt.target.scrollLeft = 0;
5594+
}
55915595
}
55925596

55935597
/**

projects/igniteui-angular/src/lib/grids/grid/grid.component.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -477,16 +477,6 @@ export class IgxGridComponent extends IgxGridBaseDirective implements GridType,
477477
};
478478
}
479479

480-
/**
481-
* @hidden @internal
482-
*/
483-
public preventContainerScroll(evt) {
484-
if (evt.target.scrollTop !== 0) {
485-
this.verticalScrollContainer.addScrollTop(evt.target.scrollTop);
486-
evt.target.scrollTop = 0;
487-
}
488-
}
489-
490480
/**
491481
* @hidden @internal
492482
*/

projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
<div class="igx-grid__tbody-content" tabindex="0" (focus)="navigation.focusTbody($event)" [attr.aria-activedescendant]="activeDescendant"
8787
(keydown)="navigation.dispatchEvent($event)" (onDragStop)="selectionService.dragMode = $event"
8888
(onDragScroll)="dragScroll($event)" [igxGridDragSelect]="selectionService.dragMode" role="rowgroup"
89-
[style.height.px]='totalHeight' [style.width.px]='calcWidth' #tbody (scroll)='scrollHandler($event)'>
89+
[style.height.px]='totalHeight' [style.width.px]='calcWidth' #tbody (scroll)='preventContainerScroll($event)'>
9090
<span *ngIf="hasMovableColumns && draggedColumn && pinnedColumns.length <= 0"
9191
[igxColumnMovingDrop]="headerContainer" [attr.droppable]="true" id="left"
9292
class="igx-grid__scroll-on-drag-left"></span>

projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
<div igxGridBody (keydown.control.c)="copyHandlerIE()" (copy)="copyHandler($event)" class="igx-grid__tbody">
6868
<div class="igx-grid__tbody-content" tabindex="0" (focus)="navigation.focusTbody($event)" [attr.aria-activedescendant]="activeDescendant" (keydown)="navigation.dispatchEvent($event)" role="rowgroup" (onDragStop)="selectionService.dragMode = $event"
6969
(onDragScroll)="dragScroll($event)" [igxGridDragSelect]="selectionService.dragMode"
70-
[style.height.px]='totalHeight' [style.width.px]='calcWidth' #tbody (scroll)='scrollHandler($event)'>
70+
[style.height.px]='totalHeight' [style.width.px]='calcWidth' #tbody (scroll)='preventContainerScroll($event)'>
7171
<span *ngIf="hasMovableColumns && draggedColumn && pinnedColumns.length <= 0"
7272
[igxColumnMovingDrop]="headerContainer" [attr.droppable]="true" id="left"
7373
class="igx-grid__scroll-on-drag-left"></span>

0 commit comments

Comments
 (0)