8
0
Просмотр исходного кода

Fix: The dropdown menu should not open using the keyboard when disabled. Closes #238.

Aleksander Nowodzinski 8 лет назад
Родитель
Сommit
a37b29e3f9

+ 2 - 1
packages/ckeditor5-ui/src/dropdown/dropdownview.js

@@ -148,7 +148,8 @@ export default class DropdownView extends View {
 
 		// Open the dropdown panel using the arrow down key, just like with return or space.
 		this.keystrokes.set( 'arrowdown', ( data, cancel ) => {
-			if ( !this.isOpen ) {
+			// Don't open if the dropdown is disabled or already open.
+			if ( this.isEnabled && !this.isOpen ) {
 				this.isOpen = true;
 				cancel();
 			}

+ 16 - 0
packages/ckeditor5-ui/tests/dropdown/dropdownview.js

@@ -140,6 +140,22 @@ describe( 'DropdownView', () => {
 				expect( view.isOpen ).to.be.true;
 			} );
 
+			it( 'so "arrowdown" won\'t open the #panelView when #isEnabled is false', () => {
+				const keyEvtData = {
+					keyCode: keyCodes.arrowdown,
+					preventDefault: sinon.spy(),
+					stopPropagation: sinon.spy()
+				};
+
+				view.isEnabled = false;
+				view.isOpen = false;
+
+				view.keystrokes.press( keyEvtData );
+				sinon.assert.notCalled( keyEvtData.preventDefault );
+				sinon.assert.notCalled( keyEvtData.stopPropagation );
+				expect( view.isOpen ).to.be.false;
+			} );
+
 			it( 'so "arrowright" is blocked', () => {
 				const keyEvtData = {
 					keyCode: keyCodes.arrowright,