1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-25 10:47:00 +00:00

(mouse-menu-buffer-maxlen): New variable.

(mouse-buffer-menu): Use it.
This commit is contained in:
Richard M. Stallman 1995-12-26 19:43:51 +00:00
parent d537086b54
commit f110796076

View File

@ -1152,6 +1152,11 @@ again. If you do this twice in the same position, it kills the selection."
(overlay-start mouse-secondary-overlay)
(overlay-end mouse-secondary-overlay)))))))
(defvar mouse-menu-buffer-maxlen 20
"*Number of buffers in one pane (submenu) of the buffer menu.
If we have lots of buffers, divide them into groups of
`mouse-menu-buffer-maxlen' and make a pane (or submenu) for each one.")
(defun mouse-buffer-menu (event)
"Pop up a menu of buffers for selection with the mouse.
This switches buffers in the window that you clicked on,
@ -1198,15 +1203,16 @@ and selects that window."
(menu
;; If we have lots of buffers, divide them into groups of 20
;; and make a pane (or submenu) for each one.
(if (> (length buffers) 30)
(if (> (length buffers) (/ (* mouse-menu-buffer-maxlen 3) 2))
(let ((buffers (reverse buffers)) sublists next
(i 1))
(while buffers
;; Pull off the next 20 buffers
;; Pull off the next mouse-menu-buffer-maxlen buffers
;; and make them the next element of sublist.
(setq next (nthcdr 20 buffers))
(setq next (nthcdr mouse-menu-buffer-maxlen buffers))
(if next
(setcdr (nthcdr 19 buffers) nil))
(setcdr (nthcdr (1- mouse-menu-buffer-maxlen) buffers)
nil))
(setq sublists (cons (cons (format "Buffers %d" i) buffers)
sublists))
(setq i (1+ i))