diff options
| author | Eli Zaretskii | 2026-01-21 17:37:33 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2026-01-21 17:37:33 +0200 |
| commit | d4dbce74a7bbd1e7c0a3ef7cc7600a5627e26ad6 (patch) | |
| tree | d985dc392660f79a02fd7fc514592e6cf32150e3 | |
| parent | fe2469c1c139e85742cf56dc2a9b6eaf7aad36a7 (diff) | |
| download | emacs-d4dbce74a7bbd1e7c0a3ef7cc7600a5627e26ad6.tar.gz emacs-d4dbce74a7bbd1e7c0a3ef7cc7600a5627e26ad6.zip | |
Fix updating buffer menu after invoking "M-x term"
The doc string of 'frame-or-buffer-changed-p' says not to call it
with the nil argument, but term.el did. Since "M-x term" puts
'term--update-term-menu' on the 'menu-bar-update-hook' ahead of
'menu-bar-update-buffers', it caused the latter decide that there
was no change in buffers, because the internal state variable
used by 'frame-or-buffer-changed-p' when called with the nil
argument was reset by 'term--update-term-menu'. Fix that by using
a non-nil state variable.
* lisp/term.el (term--buffers-changed): New variable.
(term--update-term-menu): Use it when calling
'frame-or-buffer-changed-p'. (Bug#80231)
| -rw-r--r-- | lisp/term.el | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lisp/term.el b/lisp/term.el index 34b3450624c..9ac77730350 100644 --- a/lisp/term.el +++ b/lisp/term.el | |||
| @@ -1009,9 +1009,11 @@ For custom keybindings purposes please note there is also | |||
| 1009 | ["Paging" term-pager-toggle :style toggle :selected term-pager-count | 1009 | ["Paging" term-pager-toggle :style toggle :selected term-pager-count |
| 1010 | :help "Toggle paging feature"])) | 1010 | :help "Toggle paging feature"])) |
| 1011 | 1011 | ||
| 1012 | (defvar term--buffers-changed nil) | ||
| 1013 | |||
| 1012 | (defun term--update-term-menu (&optional force) | 1014 | (defun term--update-term-menu (&optional force) |
| 1013 | (when (and (lookup-key term-mode-map [menu-bar terminal]) | 1015 | (when (and (lookup-key term-mode-map [menu-bar terminal]) |
| 1014 | (or force (frame-or-buffer-changed-p))) | 1016 | (or force (frame-or-buffer-changed-p 'term--buffers-changed))) |
| 1015 | (let ((buffer-list (match-buffers '(derived-mode . term-mode)))) | 1017 | (let ((buffer-list (match-buffers '(derived-mode . term-mode)))) |
| 1016 | (easy-menu-change | 1018 | (easy-menu-change |
| 1017 | nil | 1019 | nil |