|
1 | 1 | import { Component, ChangeDetectorRef, Input, Output, HostBinding, ChangeDetectionStrategy, |
2 | | - EventEmitter, Renderer2, OnDestroy, ElementRef, AfterViewInit } from '@angular/core'; |
| 2 | + EventEmitter, Renderer2, OnDestroy, ElementRef, AfterViewInit, NgZone } from '@angular/core'; |
3 | 3 | import { Subject } from 'rxjs/Subject'; |
4 | 4 | import { Observable } from 'rxjs/Observable'; |
5 | 5 | import 'rxjs/add/operator/debounceTime'; |
@@ -269,7 +269,8 @@ export class SplitComponent implements AfterViewInit, OnDestroy { |
269 | 269 | sizePercentB: 0, |
270 | 270 | }; |
271 | 271 |
|
272 | | - constructor(private elRef: ElementRef, |
| 272 | + constructor(private ngZone: NgZone, |
| 273 | + private elRef: ElementRef, |
273 | 274 | private cdRef: ChangeDetectorRef, |
274 | 275 | private renderer: Renderer2) {} |
275 | 276 |
|
@@ -453,9 +454,11 @@ export class SplitComponent implements AfterViewInit, OnDestroy { |
453 | 454 | // Place code here to allow '(gutterClick)' event even if '[disabled]="true"'. |
454 | 455 | this.currentGutterNum = gutterNum; |
455 | 456 | this.draggingWithoutMove = true; |
456 | | - this.dragListeners.push( this.renderer.listen('document', 'mouseup', (e: MouseEvent) => this.stopDragging()) ); |
457 | | - this.dragListeners.push( this.renderer.listen('document', 'touchend', (e: TouchEvent) => this.stopDragging()) ); |
458 | | - this.dragListeners.push( this.renderer.listen('document', 'touchcancel', (e: TouchEvent) => this.stopDragging()) ); |
| 457 | + this.ngZone.runOutsideAngular(() => { |
| 458 | + this.dragListeners.push( this.renderer.listen('document', 'mouseup', (e: MouseEvent) => this.stopDragging()) ); |
| 459 | + this.dragListeners.push( this.renderer.listen('document', 'touchend', (e: TouchEvent) => this.stopDragging()) ); |
| 460 | + this.dragListeners.push( this.renderer.listen('document', 'touchcancel', (e: TouchEvent) => this.stopDragging()) ); |
| 461 | + }); |
459 | 462 |
|
460 | 463 | if(this.disabled) { |
461 | 464 | return; |
@@ -492,8 +495,10 @@ export class SplitComponent implements AfterViewInit, OnDestroy { |
492 | 495 | return; |
493 | 496 | } |
494 | 497 |
|
495 | | - this.dragListeners.push( this.renderer.listen('document', 'mousemove', (e: MouseEvent) => this.dragEvent(e, start, areaA, areaB)) ); |
496 | | - this.dragListeners.push( this.renderer.listen('document', 'touchmove', (e: TouchEvent) => this.dragEvent(e, start, areaA, areaB)) ); |
| 498 | + this.ngZone.runOutsideAngular(() => { |
| 499 | + this.dragListeners.push( this.renderer.listen('document', 'mousemove', (e: MouseEvent) => this.dragEvent(e, start, areaA, areaB)) ); |
| 500 | + this.dragListeners.push( this.renderer.listen('document', 'touchmove', (e: TouchEvent) => this.dragEvent(e, start, areaA, areaB)) ); |
| 501 | + }); |
497 | 502 |
|
498 | 503 | areaA.comp.lockEvents(); |
499 | 504 | areaB.comp.lockEvents(); |
|
0 commit comments