]> code.delx.au - gnu-emacs/blobdiff - lisp/bindings.el
.
[gnu-emacs] / lisp / bindings.el
index 0acdb2a4a7b1e6bec14f9edb81840463031b2c06..a24497985888f1bc2e6b951b3b0a0ff98e3f9b8a 100644 (file)
@@ -1,7 +1,7 @@
 ;;; 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
@@ -123,7 +123,7 @@ corresponding to the mode line clicked."
 
 (defvar mode-line-coding-system-map
   (let ((map (make-sparse-keymap)))
-    (define-key map [mode-line mouse-3]
+    (define-key map [mode-line mouse-1]
       (lambda (e)
        (interactive "e")
        (save-selected-window
@@ -156,7 +156,7 @@ corresponding to the mode line clicked."
       (setq desc
            (propertize
             mnemonic
-            'help-echo (format "%s end-of-line; mouse-3 to cycle"
+            'help-echo (format "%s end-of-line; mouse-1 to cycle"
                                (if (eq eol 0) "Unix-style LF"
                                  (if (eq eol 1) "Dos-style CRLF"
                                    (if (eq eol 2) "Mac-style CR"
@@ -164,7 +164,7 @@ corresponding to the mode line clicked."
             'keymap
             (eval-when-compile
               (let ((map (make-sparse-keymap)))
-                (define-key map [mode-line mouse-3] 'mode-line-change-eol)
+                (define-key map [mode-line mouse-1] 'mode-line-change-eol)
                 map))
             'mouse-face 'mode-line-highlight))
       (push (cons eol (cons mnemonic desc)) mode-line-eol-desc-cache)
@@ -190,7 +190,7 @@ corresponding to the mode line clicked."
            (when buffer-file-coding-system
              (if enable-multibyte-characters
                  (concat (symbol-name buffer-file-coding-system)
-                         " buffer; mouse-3: describe coding system")
+                         " buffer; mouse-1: describe coding system")
                (concat "Unibyte " (symbol-name buffer-file-coding-system)
                        " buffer")))))
       'mouse-face 'mode-line-highlight
@@ -230,27 +230,27 @@ Normally nil in most modes, since there is no process to display.")
   (list (propertize
         "%1*"
         'help-echo (purecopy (lambda (window object point)
-                               (format "%sead-only: mouse-3 toggles"
+                               (format "%sead-only: mouse-1 toggles"
                                        (save-selected-window
                                          (select-window window)
                                          (if buffer-read-only
                                              "R"
                                            "Not r")))))
         'local-map (purecopy (make-mode-line-mouse-map
-                              'mouse-3
+                              'mouse-1
                               #'mode-line-toggle-read-only))
         'mouse-face 'mode-line-highlight)
        (propertize
         "%1+"
         'help-echo  (purecopy (lambda (window object point)
-                                (format "%sodified: mouse-3 toggles"
+                                (format "%sodified: mouse-1 toggles"
                                         (save-selected-window
                                           (select-window window)
                                           (if (buffer-modified-p)
                                             "M"
                                           "Not m")))))
         'local-map (purecopy (make-mode-line-mouse-map
-                              'mouse-3 #'mode-line-toggle-modified))
+                              'mouse-1 #'mode-line-toggle-modified))
         'mouse-face 'mode-line-highlight))
   "Mode-line control for displaying whether current buffer is modified.")
 
@@ -291,6 +291,7 @@ Keymap to display on minor modes.")
        (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
@@ -309,13 +310,13 @@ Keymap to display on minor modes.")
     (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
@@ -337,29 +338,6 @@ Keymap to display on minor modes.")
 (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)
@@ -384,6 +362,20 @@ Switch to the most recently selected buffer other than the current one."
   (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.")
 
@@ -457,13 +449,13 @@ 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)
@@ -471,7 +463,7 @@ Menu of mode operations in the mode line.")
 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
@@ -672,8 +664,8 @@ language you are using."
 
 (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)
@@ -748,7 +740,7 @@ language you are using."
 
 ;; natural bindings for terminal keycaps --- defined in X keysym order
 (define-key global-map [C-S-backspace]  'kill-whole-line)
-(define-key global-map [home]          'beginning-of-line)
+(define-key global-map [home]          'move-beginning-of-line)
 (define-key global-map [C-home]                'beginning-of-buffer)
 (define-key global-map [M-home]                'beginning-of-buffer-other-window)
 (define-key esc-map    [home]          'beginning-of-buffer-other-window)
@@ -768,7 +760,7 @@ language you are using."
 (define-key global-map [M-prior]       'scroll-other-window-down)
 (define-key esc-map    [prior]         'scroll-other-window-down)
 (define-key esc-map [?\C-\S-v]         'scroll-other-window-down)
-(define-key global-map [end]           'end-of-line)
+(define-key global-map [end]           'move-end-of-line)
 (define-key global-map [C-end]         'end-of-buffer)
 (define-key global-map [M-end]         'end-of-buffer-other-window)
 (define-key esc-map    [end]           'end-of-buffer-other-window)