aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2026-01-21 17:37:33 +0200
committerEli Zaretskii2026-01-21 17:37:33 +0200
commitd4dbce74a7bbd1e7c0a3ef7cc7600a5627e26ad6 (patch)
treed985dc392660f79a02fd7fc514592e6cf32150e3
parentfe2469c1c139e85742cf56dc2a9b6eaf7aad36a7 (diff)
downloademacs-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.el4
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