From 524b3453cc4fc7309ffa802b291592e151c73ef3 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Fri, 5 Jun 2026 14:48:43 -0500 Subject: fix(term): forward F10 and C-F10 to Emacs in ghostel buffers Inside a ghostel terminal or agent buffer, semi-char mode forwarded F10 and C-F10 to the pty, so the music-playlist toggle and the server-shutdown command never ran. Both are global bindings with no ghostel-mode-map entry, so I added them to ghostel-keymap-exceptions and rebuilt the semi-char map. The lookup then falls through to the global map. Same shape as the earlier F9, F12, and window-nav fixes. --- tests/test-term-tmux-history.el | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tests/test-term-tmux-history.el') diff --git a/tests/test-term-tmux-history.el b/tests/test-term-tmux-history.el index 1bb7e73b..b7ab5351 100644 --- a/tests/test-term-tmux-history.el +++ b/tests/test-term-tmux-history.el @@ -327,6 +327,17 @@ instead of being forwarded to the terminal program." (should-not (eq (keymap-lookup ghostel-semi-char-mode-map "C-M-") 'ghostel--send-event))) +(ert-deftest test-term-f10-music-and-shutdown-in-keymap-exceptions () + "Regression: F10 (music playlist toggle) and C-F10 (server shutdown) are in +`ghostel-keymap-exceptions' so they reach Emacs from inside a ghostel buffer +instead of being forwarded to the terminal program. Both are global bindings, +so dropping them from the semi-char map lets the lookup fall through to the +global map." + (dolist (key '("" "C-")) + (should (member key ghostel-keymap-exceptions))) + (should-not (eq (keymap-lookup ghostel-semi-char-mode-map "") + 'ghostel--send-event))) + (ert-deftest test-term-c-spc-forwarded-not-set-mark () "Regression: C-SPC is forwarded to the terminal, not bound to the global `set-mark-command'. ghostel only forwards the `C-@' event, so without this an -- cgit v1.2.3