Mercurial > emacs
comparison lisp/bindings.el @ 38903:5653fe43d6fb
(mode-line-unbury-buffer): Add EVENT parameter.
Temporarily select EVENT's window for switching buffers.
(mode-line-bury-buffer): New function.
(mode-line-buffer-identification-keymap): Use it instead of
bury-buffer. Bind down-mouse events to prevent global down-mouse
events to shine through.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Wed, 22 Aug 2001 08:54:43 +0000 |
parents | 75666bd5d498 |
children | e178a1e23722 |
comparison
equal
deleted
inserted
replaced
38902:7c02e0051bda | 38903:5653fe43d6fb |
---|---|
239 Keymap for what is displayed by `mode-line-mode-name'.") | 239 Keymap for what is displayed by `mode-line-mode-name'.") |
240 | 240 |
241 (defvar mode-line-mode-menu-keymap nil "\ | 241 (defvar mode-line-mode-menu-keymap nil "\ |
242 Keymap for mode operations menu in the mode line.") | 242 Keymap for mode operations menu in the mode line.") |
243 | 243 |
244 (defun mode-line-unbury-buffer () "\ | 244 (defun mode-line-unbury-buffer (event) "\ |
245 Switch to the last buffer in the buffer list that is not hidden." | 245 Switch to the last buffer in the buffer list that is not hidden." |
246 (interactive) | 246 (interactive "e") |
247 (let ((list (reverse (buffer-list)))) | 247 (save-selected-window |
248 (while (eq (aref (buffer-name (car list)) 0) ? ) | 248 (select-window (posn-window (event-start event))) |
249 (setq list (cdr list))) | 249 (let ((list (reverse (buffer-list)))) |
250 (switch-to-buffer (car list)))) | 250 (while (eq (aref (buffer-name (car list)) 0) ? ) |
251 (setq list (cdr list))) | |
252 (switch-to-buffer (car list))))) | |
253 | |
254 (defun mode-line-bury-buffer (event) "\ | |
255 Like bury-buffer, but temporarily select EVENT's window." | |
256 (interactive "e") | |
257 (save-selected-window | |
258 (select-window (posn-window (event-start event))) | |
259 (bury-buffer))) | |
251 | 260 |
252 (defun mode-line-other-buffer () "\ | 261 (defun mode-line-other-buffer () "\ |
253 Switch to the most recently selected buffer other than the current one." | 262 Switch to the most recently selected buffer other than the current one." |
254 (interactive) | 263 (interactive) |
255 (switch-to-buffer (other-buffer))) | 264 (switch-to-buffer (other-buffer))) |
332 | 341 |
333 ;; Add menu of buffer operations to the buffer identification part | 342 ;; Add menu of buffer operations to the buffer identification part |
334 ;; of the mode line.or header line. | 343 ;; of the mode line.or header line. |
335 ; | 344 ; |
336 (let ((map (make-sparse-keymap))) | 345 (let ((map (make-sparse-keymap))) |
346 ;; Bind down- events so that the global keymap won't ``shine | |
347 ;; through''. | |
348 (define-key map [mode-line down-mouse-1] 'ignore) | |
337 (define-key map [mode-line mouse-1] 'mode-line-unbury-buffer) | 349 (define-key map [mode-line mouse-1] 'mode-line-unbury-buffer) |
350 (define-key map [header-line down-mouse-1] 'ignore) | |
338 (define-key map [header-line mouse-1] 'mode-line-unbury-buffer) | 351 (define-key map [header-line mouse-1] 'mode-line-unbury-buffer) |
339 (define-key map [mode-line mouse-3] 'bury-buffer) | 352 (define-key map [header-line down-mouse-3] 'ignore) |
340 (define-key map [header-line mouse-3] 'bury-buffer) | 353 (define-key map [mode-line mouse-3] 'mode-line-bury-buffer) |
354 (define-key map [header-line down-mouse-3] 'ignore) | |
355 (define-key map [header-line mouse-3] 'mode-line-bury-buffer) | |
341 (setq mode-line-buffer-identification-keymap map)) | 356 (setq mode-line-buffer-identification-keymap map)) |
342 | 357 |
343 (defun propertized-buffer-identification (fmt) | 358 (defun propertized-buffer-identification (fmt) |
344 "Return a list suitable for `mode-line-buffer-identification'. | 359 "Return a list suitable for `mode-line-buffer-identification'. |
345 FMT is a format specifier such as \"%12b\". This function adds | 360 FMT is a format specifier such as \"%12b\". This function adds |