8
0
Pārlūkot izejas kodu

Merge branch 't/1653-b2' into t/1653-b

Maciej Bukowski 6 gadi atpakaļ
vecāks
revīzija
d3a56e4236

+ 2 - 0
packages/ckeditor5-engine/src/view/placeholder.js

@@ -38,6 +38,8 @@ export function attachPlaceholder( view, element, placeholderText, checkFunction
 		placeholderText,
 		checkFunction
 	} );
+
+	view.change( writer => updateAllPlaceholders( document, writer ) );
 }
 
 /**

+ 4 - 1
packages/ckeditor5-engine/src/view/view.js

@@ -403,9 +403,12 @@ export default class View {
 	}
 
 	/**
-	 * Renders {@link module:engine/view/document~Document view document} to DOM. If any view changes are
+	 * Forces rendering {@link module:engine/view/document~Document view document} to DOM. If any view changes are
 	 * currently in progress, rendering will start after all {@link #change change blocks} are processed.
 	 *
+	 * Note that this method is dedicated for special cases. All view changes should be wrapped in the {@link #change}
+	 * block and the view will automatically check whether it needs to render DOM or not.
+	 *
 	 * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `applying-view-changes-on-rendering` when
 	 * trying to re-render when rendering to DOM has already started.
 	 */

+ 0 - 12
packages/ckeditor5-engine/tests/view/placeholder.js

@@ -25,7 +25,6 @@ describe( 'placeholder', () => {
 			const element = viewRoot.getChild( 0 );
 
 			attachPlaceholder( view, element, 'foo bar baz' );
-			view.forceRender();
 
 			expect( element.getAttribute( 'data-placeholder' ) ).to.equal( 'foo bar baz' );
 			expect( element.hasClass( 'ck-placeholder' ) ).to.be.true;
@@ -36,7 +35,6 @@ describe( 'placeholder', () => {
 			const element = viewRoot.getChild( 0 );
 
 			attachPlaceholder( view, element, 'foo bar baz' );
-			view.forceRender();
 
 			expect( element.getAttribute( 'data-placeholder' ) ).to.equal( 'foo bar baz' );
 			expect( element.hasClass( 'ck-placeholder' ) ).to.be.false;
@@ -47,7 +45,6 @@ describe( 'placeholder', () => {
 			const element = viewRoot.getChild( 0 );
 
 			attachPlaceholder( view, element, 'foo bar baz' );
-			view.forceRender();
 
 			expect( element.getAttribute( 'data-placeholder' ) ).to.equal( 'foo bar baz' );
 			expect( element.hasClass( 'ck-placeholder' ) ).to.be.true;
@@ -58,7 +55,6 @@ describe( 'placeholder', () => {
 			const element = viewRoot.getChild( 0 );
 
 			attachPlaceholder( view, element, 'foo bar baz' );
-			view.forceRender();
 
 			expect( element.getAttribute( 'data-placeholder' ) ).to.equal( 'foo bar baz' );
 			expect( element.hasClass( 'ck-placeholder' ) ).to.be.false;
@@ -70,7 +66,6 @@ describe( 'placeholder', () => {
 			viewDocument.isFocused = false;
 
 			attachPlaceholder( view, element, 'foo bar baz' );
-			view.forceRender();
 
 			expect( element.getAttribute( 'data-placeholder' ) ).to.equal( 'foo bar baz' );
 			expect( element.hasClass( 'ck-placeholder' ) ).to.be.true;
@@ -83,7 +78,6 @@ describe( 'placeholder', () => {
 			const spy = sinon.spy( () => result );
 
 			attachPlaceholder( view, element, 'foo bar baz', spy );
-			view.forceRender();
 
 			sinon.assert.called( spy );
 			expect( element.getAttribute( 'data-placeholder' ) ).to.equal( 'foo bar baz' );
@@ -99,7 +93,6 @@ describe( 'placeholder', () => {
 			const element = viewRoot.getChild( 0 );
 
 			attachPlaceholder( view, element, 'foo bar baz' );
-			view.forceRender();
 
 			expect( element.getAttribute( 'data-placeholder' ) ).to.equal( 'foo bar baz' );
 			expect( element.hasClass( 'ck-placeholder' ) ).to.be.true;
@@ -117,7 +110,6 @@ describe( 'placeholder', () => {
 
 			attachPlaceholder( view, element, 'foo bar baz' );
 			attachPlaceholder( view, element, 'new text' );
-			view.forceRender();
 
 			expect( element.getAttribute( 'data-placeholder' ) ).to.equal( 'new text' );
 			expect( element.hasClass( 'ck-placeholder' ) ).to.be.true;
@@ -146,8 +138,6 @@ describe( 'placeholder', () => {
 
 			attachPlaceholder( view, element, 'first placeholder' );
 			attachPlaceholder( secondView, secondElement, 'second placeholder' );
-			view.forceRender();
-			secondView.forceRender();
 
 			expect( element.getAttribute( 'data-placeholder' ) ).to.equal( 'first placeholder' );
 			expect( element.hasClass( 'ck-placeholder' ) ).to.be.true;
@@ -176,7 +166,6 @@ describe( 'placeholder', () => {
 			const element = viewRoot.getChild( 0 );
 
 			attachPlaceholder( view, element, 'foo bar baz' );
-			view.forceRender();
 
 			view.change( writer => {
 				writer.setSelection( ViewRange._createIn( element ) );
@@ -197,7 +186,6 @@ describe( 'placeholder', () => {
 			const element = viewRoot.getChild( 0 );
 
 			attachPlaceholder( view, element, 'foo bar baz' );
-			view.forceRender();
 
 			expect( element.getAttribute( 'data-placeholder' ) ).to.equal( 'foo bar baz' );
 			expect( element.hasClass( 'ck-placeholder' ) ).to.be.true;