diff --git a/modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp b/modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp index e4f18bcdff..4e5036ecfa 100644 --- a/modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp +++ b/modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp @@ -68,6 +68,13 @@ void FilenameComponent::resized() getLookAndFeel().layoutFilenameComponent (*this, &filenameBox, browseButton); } +KeyboardFocusTraverser* FilenameComponent::createFocusTraverser() +{ + // This prevents the sub-components from grabbing focus if the + // FilenameComponent has been set to refuse focus. + return getWantsKeyboardFocus() ? Component::createFocusTraverser() : nullptr; +} + void FilenameComponent::setBrowseButtonText (const String& newBrowseButtonText) { browseButtonText = newBrowseButtonText; diff --git a/modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h b/modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h index 4456c11e9e..bbae76ee67 100644 --- a/modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h +++ b/modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h @@ -205,6 +205,8 @@ public: void fileDragEnter (const StringArray&, int, int) override; /** @internal */ void fileDragExit (const StringArray&) override; + /** @internal */ + KeyboardFocusTraverser* createFocusTraverser() override; private: //==============================================================================