diff --git a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatFindReplaceBar.java b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatFindReplaceBar.java index 141b0614..9910c28f 100644 --- a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatFindReplaceBar.java +++ b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatFindReplaceBar.java @@ -68,6 +68,7 @@ class FlatFindReplaceBar @Override public boolean requestFocusInWindow() { + // invoked from CollapsibleSectionPanel return findField.requestFocusInWindow(); } diff --git a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemeEditorPane.java b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemeEditorPane.java index d914af25..ade51c5d 100644 --- a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemeEditorPane.java +++ b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemeEditorPane.java @@ -106,8 +106,18 @@ class FlatThemeEditorPane // create overlay layer JLayer overlay = new JLayer<>( textArea, new FlatThemeEditorOverlay() ); + // create view panel that transfers focus to editor when hiding find/replace bar + JPanel viewPanel = new JPanel( new BorderLayout() ) { + @Override + public boolean requestFocusInWindow() { + // invoked from CollapsibleSectionPanel + return textArea.requestFocusInWindow(); + } + }; + viewPanel.add( overlay, BorderLayout.CENTER ); + // create scroll pane - scrollPane = new RTextScrollPane( overlay ); + scrollPane = new RTextScrollPane( viewPanel ); scrollPane.setLineNumbersEnabled( true ); // scale fonts