Преглед изворни кода

Add checks for EnterObserver and DeleteObserver

Paweł Smyrek пре 5 година
родитељ
комит
52ce5d8044

+ 4 - 0
packages/ckeditor5-enter/src/enterobserver.js

@@ -23,6 +23,10 @@ export default class EnterObserver extends Observer {
 		const doc = this.document;
 
 		doc.on( 'keydown', ( evt, data ) => {
+			if ( this.checkShouldIgnoreEventFromTarget( data.domEvent.target ) ) {
+				return;
+			}
+
 			if ( this.isEnabled && data.keyCode == keyCodes.enter ) {
 				// Save the event object to check later if it was stopped or not.
 				let event;

+ 12 - 0
packages/ckeditor5-typing/src/deleteobserver.js

@@ -25,12 +25,20 @@ export default class DeleteObserver extends Observer {
 		let sequence = 0;
 
 		document.on( 'keyup', ( evt, data ) => {
+			if ( this.checkShouldIgnoreEventFromTarget( data.domEvent.target ) ) {
+				return;
+			}
+
 			if ( data.keyCode == keyCodes.delete || data.keyCode == keyCodes.backspace ) {
 				sequence = 0;
 			}
 		} );
 
 		document.on( 'keydown', ( evt, data ) => {
+			if ( this.checkShouldIgnoreEventFromTarget( data.domEvent.target ) ) {
+				return;
+			}
+
 			const deleteData = {};
 
 			if ( data.keyCode == keyCodes.delete ) {
@@ -53,6 +61,10 @@ export default class DeleteObserver extends Observer {
 		// `beforeinput` is handled only for Android devices. Desktop Chrome and iOS are skipped because they are working fine now.
 		if ( env.isAndroid ) {
 			document.on( 'beforeinput', ( evt, data ) => {
+				if ( this.checkShouldIgnoreEventFromTarget( data.domEvent.target ) ) {
+					return;
+				}
+
 				// If event type is other than `deleteContentBackward` then this is not deleting.
 				if ( data.domEvent.inputType != 'deleteContentBackward' ) {
 					return;