You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2026/07/13 19:58:32 UTC
(camel) 01/02: CAMEL-24003: Pass F-keys through AI panel to global TUI handlers
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 <cl...@gmail.com>
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 <no...@anthropic.com>
Signed-off-by: Claus Ibsen <cl...@gmail.com>
---
.../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);