Przeglądaj źródła

Internal: RootEditableElement is created together with the editor structure.

Oskar Wróbel 8 lat temu
rodzic
commit
03f5fb5138

+ 5 - 1
packages/ckeditor5-editor-balloon/src/ballooneditorui.js

@@ -43,6 +43,10 @@ export default class BalloonEditorUI {
 		 * @inheritDoc
 		 */
 		this.focusTracker = new FocusTracker();
+
+		// RootEditableElement should be created together with the editor structure.
+		// See https://github.com/ckeditor/ckeditor5/issues/647.
+		editor.editing.createRoot( view.editableElement );
 	}
 
 	/**
@@ -56,7 +60,7 @@ export default class BalloonEditorUI {
 		view.render();
 
 		// Setup the editable.
-		const editingRoot = editor.editing.createRoot( view.editableElement );
+		const editingRoot = editor.editing.view.getRoot();
 		view.editable.bind( 'isReadOnly' ).to( editingRoot );
 
 		// Bind to focusTracker instead of editor.editing.view because otherwise

+ 5 - 0
packages/ckeditor5-editor-balloon/tests/ballooneditorui.js

@@ -11,6 +11,7 @@ import BalloonEditorUIView from '../src/ballooneditoruiview';
 import VirtualTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/virtualtesteditor';
 import ContextualToolbar from '@ckeditor/ckeditor5-ui/src/toolbar/contextual/contextualtoolbar';
 import FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';
+import RootEditableElement from '@ckeditor/ckeditor5-engine/src/view/rooteditableelement';
 import { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';
 import utils from '@ckeditor/ckeditor5-utils/tests/_utils/utils';
 
@@ -50,6 +51,10 @@ describe( 'BalloonEditorUI', () => {
 			expect( ui.focusTracker ).to.be.instanceOf( FocusTracker );
 		} );
 
+		it( 'creates root editable element', () => {
+			expect( editor.editing.view.getRoot() ).to.be.instanceOf( RootEditableElement );
+		} );
+
 		describe( 'editable', () => {
 			let editable;