;;; bindings.el --- define standard key bindings and some variables
;; Copyright (C) 1985, 1986, 1987, 1992, 1993, 1994, 1995, 1996, 1999,
-;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
(dashes (propertize "--" 'help-echo help-echo)))
(setq-default mode-line-format
(list
+ "%e"
(propertize "-" 'help-echo help-echo)
'mode-line-mule-info
'mode-line-modified
(list
(propertize "%[(" 'help-echo help-echo)
`(:propertize ("" mode-name)
- help-echo "mouse-1: major-mode-menu mouse-2: help for current major mode"
+ help-echo "mouse-1: major mode, mouse-2: major mode help, mouse-3: toggle minor modes"
mouse-face mode-line-highlight
local-map ,mode-line-major-mode-keymap)
'("" mode-line-process)
`(:propertize ("" minor-mode-alist)
mouse-face mode-line-highlight
- help-echo "mouse-2: help for minor modes, mouse-3: minor mode menu"
+ help-echo "mouse-2: minor mode help, mouse-3: toggle minor modes"
local-map ,mode-line-minor-mode-keymap)
(propertize "%n" 'help-echo "mouse-2: widen"
'mouse-face 'mode-line-highlight
(defvar mode-line-buffer-identification-keymap nil "\
Keymap for what is displayed by `mode-line-buffer-identification'.")
-(defun last-buffer () "\
-Return the last non-hidden buffer in the buffer list."
- ;; This logic is more or less copied from bury-buffer,
- ;; except that we reverse the buffer list.
- (let ((list (nreverse (buffer-list (selected-frame))))
- (pred (frame-parameter nil 'buffer-predicate))
- found notsogood)
- (while (and list (not found))
- (unless (or (eq (aref (buffer-name (car list)) 0) ? )
- ;; If the selected frame has a buffer_predicate,
- ;; disregard buffers that don't fit the predicate.
- (and pred (not (funcall pred (car list)))))
- (if (get-buffer-window (car list) 'visible)
- (or notsogood (eq (car list) (current-buffer)))
- (setq found (car list))))
- (pop list))
- (or found notsogood
- (get-buffer "*scratch*")
- (progn
- (set-buffer-major-mode
- (get-buffer-create "*scratch*"))
- (get-buffer "*scratch*")))))
-
(defun unbury-buffer () "\
Switch to the last buffer in the buffer list."
(interactive)
(interactive)
(switch-to-buffer (other-buffer)))
+(defun mode-line-next-buffer (event)
+ "Like `next-buffer', but temporarily select EVENT's window."
+ (interactive "e")
+ (save-selected-window
+ (select-window (posn-window (event-start event)))
+ (next-buffer)))
+
+(defun mode-line-previous-buffer (event)
+ "Like `previous-buffer', but temporarily select EVENT's window."
+ (interactive "e")
+ (save-selected-window
+ (select-window (posn-window (event-start event)))
+ (previous-buffer)))
+
(defvar mode-line-mode-menu (make-sparse-keymap "Minor Modes") "\
Menu of mode operations in the mode line.")
(let ((map (make-sparse-keymap)))
;; Bind down- events so that the global keymap won't ``shine
;; through''.
- (define-key map [mode-line mouse-1] 'mode-line-unbury-buffer)
+ (define-key map [mode-line mouse-1] 'mode-line-previous-buffer)
(define-key map [header-line down-mouse-1] 'ignore)
- (define-key map [header-line mouse-1] 'mode-line-unbury-buffer)
+ (define-key map [header-line mouse-1] 'mode-line-previous-buffer)
(define-key map [header-line down-mouse-3] 'ignore)
- (define-key map [mode-line mouse-3] 'mode-line-bury-buffer)
+ (define-key map [mode-line mouse-3] 'mode-line-next-buffer)
(define-key map [header-line down-mouse-3] 'ignore)
- (define-key map [header-line mouse-3] 'mode-line-bury-buffer)
+ (define-key map [header-line mouse-3] 'mode-line-next-buffer)
(setq mode-line-buffer-identification-keymap map))
(defun propertized-buffer-identification (fmt)
FMT is a format specifier such as \"%12b\". This function adds
text properties for face, help-echo, and local-map to it."
(list (propertize fmt
- 'face 'Buffer-menu-buffer
+ 'face 'mode-line-buffer-id
'help-echo
(purecopy "mouse-1: previous buffer, mouse-3: next buffer")
'mouse-face 'mode-line-highlight
(define-key global-map [?\C-x right] 'next-buffer)
(define-key global-map [?\C-x C-right] 'next-buffer)
-(define-key global-map [?\C-x left] 'prev-buffer)
-(define-key global-map [?\C-x C-left] 'prev-buffer)
+(define-key global-map [?\C-x left] 'previous-buffer)
+(define-key global-map [?\C-x C-left] 'previous-buffer)
(let ((map minibuffer-local-map))
(define-key map "\en" 'next-history-element)