Bladeren bron

Arrow keys handler for vertical navigation next to limit elements extracted to widget package.

Kuba Niegowski 5 jaren geleden
bovenliggende
commit
33864527de

+ 0 - 3
packages/ckeditor5-engine/src/controller/editingcontroller.js

@@ -16,7 +16,6 @@ import { clearAttributes, convertCollapsedSelection, convertRangeSelection, inse
 import ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';
 import ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';
 import mix from '@ckeditor/ckeditor5-utils/src/mix';
 import mix from '@ckeditor/ckeditor5-utils/src/mix';
 import { convertSelectionChange } from '../conversion/upcasthelpers';
 import { convertSelectionChange } from '../conversion/upcasthelpers';
-import verticalNavigationHandler from '../utils/verticalnavigation';
 
 
 // @if CK_DEBUG_ENGINE // const { dumpTrees, initDocumentDumping } = require( '../dev-utils/utils' );
 // @if CK_DEBUG_ENGINE // const { dumpTrees, initDocumentDumping } = require( '../dev-utils/utils' );
 
 
@@ -134,8 +133,6 @@ export default class EditingController {
 		// @if CK_DEBUG_ENGINE // this.model.document.on( 'change', () => {
 		// @if CK_DEBUG_ENGINE // this.model.document.on( 'change', () => {
 		// @if CK_DEBUG_ENGINE //	dumpTrees( this.view.document, this.model.document.version );
 		// @if CK_DEBUG_ENGINE //	dumpTrees( this.view.document, this.model.document.version );
 		// @if CK_DEBUG_ENGINE // }, { priority: 'lowest' } );
 		// @if CK_DEBUG_ENGINE // }, { priority: 'lowest' } );
-
-		verticalNavigationHandler( this );
 	}
 	}
 
 
 	/**
 	/**

+ 3 - 3
packages/ckeditor5-engine/src/utils/verticalnavigation.js

@@ -7,13 +7,13 @@ import { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';
 import Rect from '@ckeditor/ckeditor5-utils/src/dom/rect';
 import Rect from '@ckeditor/ckeditor5-utils/src/dom/rect';
 
 
 /**
 /**
- * @module engine/utils/verticalnavigationhandler
+ * @module widget/verticalnavigationhandler
  */
  */
 
 
 export default function verticalNavigationHandler( editing ) {
 export default function verticalNavigationHandler( editing ) {
 	const model = editing.model;
 	const model = editing.model;
 
 
-	editing.view.document.on( 'keydown', ( evt, data ) => {
+	return ( evt, data ) => {
 		const arrowUpPressed = data.keyCode == keyCodes.arrowup;
 		const arrowUpPressed = data.keyCode == keyCodes.arrowup;
 		const arrowDownPressed = data.keyCode == keyCodes.arrowdown;
 		const arrowDownPressed = data.keyCode == keyCodes.arrowdown;
 		const expandSelection = data.shiftKey;
 		const expandSelection = data.shiftKey;
@@ -47,7 +47,7 @@ export default function verticalNavigationHandler( editing ) {
 			data.preventDefault();
 			data.preventDefault();
 			data.stopPropagation();
 			data.stopPropagation();
 		}
 		}
-	} );
+	};
 }
 }
 
 
 function findTextRangeFromSelection( model, mapper, selection, isForward ) {
 function findTextRangeFromSelection( model, mapper, selection, isForward ) {

+ 3 - 0
packages/ckeditor5-widget/src/widget.js

@@ -19,6 +19,7 @@ import env from '@ckeditor/ckeditor5-utils/src/env';
 
 
 import '../theme/widget.css';
 import '../theme/widget.css';
 import priorities from '@ckeditor/ckeditor5-utils/src/priorities';
 import priorities from '@ckeditor/ckeditor5-utils/src/priorities';
+import verticalNavigationHandler from './verticalnavigation';
 
 
 /**
 /**
  * The widget plugin. It enables base support for widgets.
  * The widget plugin. It enables base support for widgets.
@@ -119,6 +120,8 @@ export default class Widget extends Plugin {
 			this._preventDefaultOnArrowKeyPress( ...args );
 			this._preventDefaultOnArrowKeyPress( ...args );
 		}, { priority: priorities.get( 'high' ) - 20 } );
 		}, { priority: priorities.get( 'high' ) - 20 } );
 
 
+		this.listenTo( viewDocument, 'keydown', verticalNavigationHandler( this.editor.editing ) );
+
 		// Handle custom delete behaviour.
 		// Handle custom delete behaviour.
 		this.listenTo( viewDocument, 'delete', ( evt, data ) => {
 		this.listenTo( viewDocument, 'delete', ( evt, data ) => {
 			if ( this._handleDelete( data.direction == 'forward' ) ) {
 			if ( this._handleDelete( data.direction == 'forward' ) ) {