[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/buff-menu.el
From: |
Chong Yidong |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/buff-menu.el |
Date: |
Wed, 07 Sep 2005 14:48:35 -0400 |
Index: emacs/lisp/buff-menu.el
diff -c emacs/lisp/buff-menu.el:1.91 emacs/lisp/buff-menu.el:1.92
*** emacs/lisp/buff-menu.el:1.91 Tue Sep 6 20:44:41 2005
--- emacs/lisp/buff-menu.el Wed Sep 7 18:48:34 2005
***************
*** 633,669 ****
(insert m2)))
(forward-line)))))
(defun Buffer-menu-make-sort-button (name column)
(if (equal column Buffer-menu-sort-column) (setq column nil))
! (let* ((downname (downcase name))
! (map (make-sparse-keymap))
! (fun `(lambda (&optional e)
! ,(concat "Sort the buffer menu by " downname ".")
! (interactive (list last-input-event))
! (if e (mouse-select-window e))
! (Buffer-menu-sort ,column)))
! (sym (intern (format "Buffer-menu-sort-by-%s-%s" name column))))
! ;; Use a symbol rather than an anonymous function, to make the output of
! ;; C-h k less intimidating.
! (fset sym fun)
! (setq fun sym)
! ;; This keymap handles both nil and non-nil
! ;; values for Buffer-menu-use-header-line.
! (define-key map [header-line mouse-1] fun)
! (define-key map [header-line mouse-2] fun)
! (define-key map [mouse-2] fun)
! (define-key map [follow-link] 'mouse-face)
! (define-key map "\C-m" fun)
! (propertize name
! 'help-echo (concat
! (if Buffer-menu-use-header-line
! "mouse-1, mouse-2: sort by "
! "mouse-2, RET: sort by ")
! ;; No clue what this is for, but I preserved the
! ;; behavior, just in case. --Stef
! (if column downname "visited order"))
! 'mouse-face 'highlight
! 'keymap map)))
(defun list-buffers-noselect (&optional files-only buffer-list)
"Create and return a buffer with a list of names of existing buffers.
--- 633,672 ----
(insert m2)))
(forward-line)))))
+ (defun Buffer-menu-sort-by-column (&optional e)
+ "Sort the buffer menu by the column clicked on."
+ (interactive (list last-input-event))
+ (if e (mouse-select-window e))
+ (let* ((pos (event-start e))
+ (obj (posn-object pos))
+ (col (if obj
+ (get-text-property (cdr obj) 'column (car obj))
+ (get-text-property (posn-point pos) 'column))))
+ (Buffer-menu-sort col)))
+
+ (defvar Buffer-menu-sort-button-map
+ (let ((map (make-sparse-keymap)))
+ ;; This keymap handles both nil and non-nil values for
+ ;; Buffer-menu-use-header-line.
+ (define-key map [header-line mouse-1] 'Buffer-menu-sort-by-column)
+ (define-key map [header-line mouse-2] 'Buffer-menu-sort-by-column)
+ (define-key map [mouse-2] 'Buffer-menu-sort-by-column)
+ (define-key map [follow-link] 'mouse-face)
+ (define-key map "\C-m" 'Buffer-menu-sort-by-column)
+ map)
+ "Local keymap for Buffer menu sort buttons.")
+
(defun Buffer-menu-make-sort-button (name column)
(if (equal column Buffer-menu-sort-column) (setq column nil))
! (propertize name
! 'column column
! 'help-echo (concat
! (if Buffer-menu-use-header-line
! "mouse-1, mouse-2: sort by "
! "mouse-2, RET: sort by ")
! (if column (downcase name) "visited order"))
! 'mouse-face 'highlight
! 'keymap Buffer-menu-sort-button-map))
(defun list-buffers-noselect (&optional files-only buffer-list)
"Create and return a buffer with a list of names of existing buffers.