Explorar el Código

Added: LiveRange#event:change.

Szymon Cofalik hace 9 años
padre
commit
471f8fed0d
Se han modificado 1 ficheros con 13 adiciones y 2 borrados
  1. 13 2
      packages/ckeditor5-engine/src/model/liverange.js

+ 13 - 2
packages/ckeditor5-engine/src/model/liverange.js

@@ -72,6 +72,12 @@ export default class LiveRange extends Range {
 	 * @param {engine.model.Range} range
 	 * @returns {engine.model.LiveRange}
 	 */
+
+	/**
+	 * Fired when `LiveRange` instance is changed due to changes on {@link engine.model.Document}.
+	 *
+	 * @event engine.model.LiveRange#change
+	 */
 }
 
 /**
@@ -150,8 +156,13 @@ function transform( type, range, position ) {
 			break;
 	}
 
-	this.start = updated.start;
-	this.end = updated.end;
+	// If anything changed, update the range and fire an event.
+	if ( !updated.start.isEqual( this.start ) || !updated.end.isEqual( this.end ) ) {
+		this.start = updated.start;
+		this.end = updated.end;
+
+		this.fire( 'change' );
+	}
 }
 
 mix( LiveRange, EmitterMixin );