Browse Source

Merge pull request #782 from ckeditor/t/781

FocusObserver renders document after blur event.
Piotrek Koszuliński 8 years ago
parent
commit
c92b72694c

+ 3 - 0
packages/ckeditor5-engine/src/view/observer/focusobserver.js

@@ -35,6 +35,9 @@ export default class FocusObserver extends DomEventObserver {
 
 			if ( selectedEditable === null || selectedEditable === data.target ) {
 				document.isFocused = false;
+
+				// Re-render the document to update view elements.
+				document.render();
 			}
 		} );
 	}

+ 1 - 0
packages/ckeditor5-engine/tests/manual/nestededitable.md

@@ -2,3 +2,4 @@
 
 * Put selection inside `foo bar baz` nested editable. Main editable and nested one should be focused (blue outline should be visible).
 * Change selection inside nested editable and see if `Model contents` change accordingly.
+* Click outside the editor. Outline from main editable and nested editable should be removed.

+ 8 - 0
packages/ckeditor5-engine/tests/view/observer/focusobserver.js

@@ -55,6 +55,14 @@ describe( 'FocusObserver', () => {
 			const data = spy.args[ 0 ][ 1 ];
 			expect( data.domTarget ).to.equal( document.body );
 		} );
+
+		it( 'should render document after blurring', () => {
+			const renderSpy = sinon.spy( viewDocument, 'render' );
+
+			observer.onDomEvent( { type: 'blur', target: document.body } );
+
+			sinon.assert.calledOnce( renderSpy );
+		} );
 	} );
 
 	describe( 'handle isFocused property of the document', () => {