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