diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-18 20:28:27 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-18 20:28:27 -0400 |
| commit | 016068349e0ebbd470e337440a1ef378248e0edb (patch) | |
| tree | c4476dce902986a505d89aea6a73be6637435ffc /tests/test-prog-webdev-format.el | |
| parent | 55fb9102c70dc272d4267aec30eed4860f3abdf5 (diff) | |
| download | dotemacs-016068349e0ebbd470e337440a1ef378248e0edb.tar.gz dotemacs-016068349e0ebbd470e337440a1ef378248e0edb.zip | |
fix(vterm): stop wheel/escape forwarders from blocking Emacs
vterm-send-string ends with (accept-process-output ... vterm-timer-delay
...). The global vterm-timer-delay is nil in this config, so the call
blocks forever when the pty's program consumes the event without producing
output -- a common pattern for TUIs like Claude Code reacting to mouse
wheel or Escape. The symptom is a spinning cursor until C-g.
cj/vterm--send-mouse-wheel and cj/vterm-send-escape now wrap the send in a
let-binding that pins vterm-timer-delay to 0, so accept-process-output
returns immediately. A top-level (defvar vterm-timer-delay) declaration
goes alongside so the let is dynamic. Without it, lexical-binding-t in
this file makes the binding lexical, invisible to vterm-send-string across
files. The backtrace from the failing case confirmed the lookup was still
receiving nil before the declaration.
Diffstat (limited to 'tests/test-prog-webdev-format.el')
0 files changed, 0 insertions, 0 deletions
