This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch fix/CAMEL-24003-tui-fkey-passthrough in repository https://gitbox.apache.org/repos/asf/camel.git
commit 823273d37c791eb3672d39e940c9aaf3e8d566ef Author: Claus Ibsen <[email protected]> AuthorDate: Mon Jul 13 21:50:42 2026 +0200 CAMEL-24003: Pass F-keys through AI panel to global TUI handlers Co-Authored-By: Claude Opus 4.6 <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> --- .../org/apache/camel/dsl/jbang/core/commands/tui/AiPanel.java | 11 +++++++++++ .../camel/dsl/jbang/core/commands/tui/CamelMonitor.java | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/AiPanel.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/AiPanel.java index 40c10e68adef..882c7401cd4a 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/AiPanel.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/AiPanel.java @@ -354,6 +354,9 @@ class AiPanel { close(); return true; } + if (isFunctionKey(ke)) { + return false; + } if (ke.hasCtrl() && ke.isCharIgnoreCase('p') && !thinking.get() && activeCliCommand == null) { openProviderSwitch(); return true; @@ -1236,6 +1239,14 @@ class AiPanel { frame.renderWidget(Paragraph.from(new dev.tamboui.text.Text(lines, dev.tamboui.layout.Alignment.LEFT)), area); } + private static boolean isFunctionKey(KeyEvent ke) { + KeyCode code = ke.code(); + return code == KeyCode.F1 || code == KeyCode.F2 || code == KeyCode.F3 + || code == KeyCode.F4 || code == KeyCode.F5 || code == KeyCode.F6 + || code == KeyCode.F7 || code == KeyCode.F9 || code == KeyCode.F10 + || code == KeyCode.F11 || code == KeyCode.F12; + } + private static String toHardBreaks(String text) { if (text == null) { return ""; diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java index 95d1e3ce11d6..1250b66c7fc0 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java @@ -620,7 +620,9 @@ public class CamelMonitor extends CamelCommand { } return true; } - return aiPanel.handleKeyEvent(ke); + if (aiPanel.handleKeyEvent(ke)) { + return true; + } } if (actionsPopup.isVisible()) { return actionsPopup.handleKeyEvent(ke);
