Parcourir la source

Changed: SelectionObserver clearing infinite loop counter in time intervals.

Szymon Cofalik il y a 9 ans
Parent
commit
3a465ec002

+ 6 - 5
packages/ckeditor5-engine/src/view/observer/selectionobserver.js

@@ -3,6 +3,8 @@
  * For licensing, see LICENSE.md.
  * For licensing, see LICENSE.md.
  */
  */
 
 
+/* global setInterval */
+
 import Observer from './observer.js';
 import Observer from './observer.js';
 import MutationObserver from './mutationobserver.js';
 import MutationObserver from './mutationobserver.js';
 
 
@@ -102,9 +104,8 @@ export default class SelectionObserver extends Observer {
 		}
 		}
 
 
 		domDocument.addEventListener( 'selectionchange', () => this._handleSelectionChange( domDocument ) );
 		domDocument.addEventListener( 'selectionchange', () => this._handleSelectionChange( domDocument ) );
-		domDocument.addEventListener( 'keydown', () => this._clearInfiniteLoop() );
-		domDocument.addEventListener( 'mousemove', () => this._clearInfiniteLoop() );
-		domDocument.addEventListener( 'mousedown', () => this._clearInfiniteLoop() );
+
+		setInterval( () => this._clearInfiniteLoop(), 2000 );
 
 
 		this._documents.add( domDocument );
 		this._documents.add( domDocument );
 	}
 	}
@@ -178,7 +179,7 @@ export default class SelectionObserver extends Observer {
 			this._loopbackCounter = 0;
 			this._loopbackCounter = 0;
 		}
 		}
 
 
-		if ( this._loopbackCounter > 10 ) {
+		if ( this._loopbackCounter > 50 ) {
 			return true;
 			return true;
 		}
 		}
 
 
@@ -188,7 +189,7 @@ export default class SelectionObserver extends Observer {
 	/**
 	/**
 	 * Clears `SelectionObserver` internal properties connected with preventing infinite loop.
 	 * Clears `SelectionObserver` internal properties connected with preventing infinite loop.
 	 *
 	 *
-	 * @private
+	 * @protected
 	 */
 	 */
 	_clearInfiniteLoop() {
 	_clearInfiniteLoop() {
 		this._lastSelection = null;
 		this._lastSelection = null;