Kaynağa Gözat

Aligned two-steps caret movement helper to new engine/view API.

Oskar Wróbel 7 yıl önce
ebeveyn
işleme
145288ffa1

+ 4 - 5
packages/ckeditor5-engine/src/utils/bindtwostepcarettoattribute.js

@@ -32,17 +32,16 @@ import first from '@ckeditor/ckeditor5-utils/src/first';
  * 		<p>foo<a>bar</a>{}biz<p> `<-` <p>foo<a>bar{}</a>biz<p>
  * 		<p>foo<a>{}bar</a>biz<p> `<-` <p>foo{}<a>bar</a>biz<p>
  *
- * @param {module:core/editor/editor~Editor} editor The Editor instance.
+ * @param {module:engine/view/view~View} view View controller instance.
+ * @param {module:engine/model/model~Model} model Data model instance.
  * @param {module:utils/dom/emittermixin~Emitter} emitter The emitter to which this behavior should be added.
  * @param {String} attribute Attribute for which behaviour will be added.
  */
-export default function bindTwoStepCaretToAttribute( editor, emitter, attribute ) {
-	const model = editor.model;
-	const editingView = editor.editing.view;
+export default function bindTwoStepCaretToAttribute( view, model, emitter, attribute ) {
 	const modelSelection = model.document.selection;
 
 	// Listen to keyboard events and handle cursor before the move.
-	emitter.listenTo( editingView, 'keydown', ( evt, data ) => {
+	emitter.listenTo( view.document, 'keydown', ( evt, data ) => {
 		const arrowRightPressed = data.keyCode == keyCodes.arrowright;
 		const arrowLeftPressed = data.keyCode == keyCodes.arrowleft;
 

+ 5 - 2
packages/ckeditor5-engine/tests/manual/twostepscarret.js

@@ -20,8 +20,11 @@ ClassicEditor
 		toolbar: [ 'undo', 'redo', '|', 'bold', 'underline', 'italic' ]
 	} )
 	.then( editor => {
-		bindTwoStepCaretToAttribute( editor, editor, 'italic' );
-		bindTwoStepCaretToAttribute( editor, editor, 'underline' );
+		const bold = editor.plugins.get( Italic );
+		const underline = editor.plugins.get( Underline );
+
+		bindTwoStepCaretToAttribute( editor.editing.view, editor.model, bold, 'italic' );
+		bindTwoStepCaretToAttribute( editor.editing.view, editor.model, underline, 'underline' );
 	} )
 	.catch( err => {
 		console.error( err.stack );

+ 2 - 2
packages/ckeditor5-engine/tests/utils/bindtwostepcarettoattribute.js

@@ -26,7 +26,7 @@ describe( 'bindTwoStepCaretToAttribute()', () => {
 			editor = newEditor;
 			model = editor.model;
 			selection = model.document.selection;
-			viewDoc = editor.editing.view;
+			viewDoc = editor.editing.view.document;
 			preventDefaultSpy = sinon.spy();
 
 			editor.model.schema.extend( '$text', {
@@ -38,7 +38,7 @@ describe( 'bindTwoStepCaretToAttribute()', () => {
 			editor.conversion.for( 'upcast' ).add( upcastElementToAttribute( { view: 'b', model: 'b' } ) );
 			editor.conversion.for( 'upcast' ).add( upcastElementToAttribute( { view: 'c', model: 'c' } ) );
 
-			bindTwoStepCaretToAttribute( editor, emitter, 'a' );
+			bindTwoStepCaretToAttribute( editor.editing.view, editor.model, emitter, 'a' );
 		} );
 	} );