diff --git a/packages/ckeditor5-find-and-replace/src/findandreplaceui.js b/packages/ckeditor5-find-and-replace/src/findandreplaceui.js index aacb26379e9..41b32513a13 100644 --- a/packages/ckeditor5-find-and-replace/src/findandreplaceui.js +++ b/packages/ckeditor5-find-and-replace/src/findandreplaceui.js @@ -104,8 +104,10 @@ export default class FindAndReplaceUI extends Plugin { } ); editor.keystrokes.set( 'Ctrl+F', ( data, cancelEvent ) => { - dropdown.isOpen = true; - cancelEvent(); + if ( dropdown.isEnabled ) { + dropdown.isOpen = true; + cancelEvent(); + } } ); } diff --git a/packages/ckeditor5-find-and-replace/tests/findandreplaceui.js b/packages/ckeditor5-find-and-replace/tests/findandreplaceui.js index addbc75dec4..1be0af71e8f 100644 --- a/packages/ckeditor5-find-and-replace/tests/findandreplaceui.js +++ b/packages/ckeditor5-find-and-replace/tests/findandreplaceui.js @@ -156,6 +156,28 @@ describe( 'FindAndReplaceUI', () => { expect( dropdown.buttonView.keystroke ).to.equal( 'CTRL+F' ); } ); + it( 'should not open the dropdown when command is disabled and CTRL+F was pressed', () => { + findCommand.isEnabled = false; + + expect( dropdown.isOpen ).to.be.false; + expect( dropdown.isEnabled ).to.be.false; + + const keyEventData = ( { + keyCode: keyCodes.f, + ctrlKey: !env.isMac, + metaKey: env.isMac, + preventDefault: sinon.spy(), + stopPropagation: sinon.spy() + } ); + + const wasHandled = editor.keystrokes.press( keyEventData ); + + expect( wasHandled ).to.be.true; + expect( keyEventData.preventDefault.notCalled ).to.be.true; + + expect( dropdown.isOpen ).to.be.false; + } ); + it( 'should open the dropdown when CTRL+F was pressed', () => { const spy = sinon.spy( form._findInputView.fieldView, 'select' );