From 3f202a7cdc1e0b929ea399e5944ebfadcd553c56 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Thu, 31 Dec 2020 15:24:32 +0100 Subject: [PATCH] Theme Editor: transfer focus to editor when hiding "find bar" --- .../flatlaf/themeeditor/FlatFindReplaceBar.java | 1 + .../flatlaf/themeeditor/FlatThemeEditorPane.java | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) 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